通常情况下,增加一个子分析器中你要做的:有没有办法在argparse中添加已创建的解析器作为子解析器?
parser = ArgumentParser()
subparsers = parser.add_subparser()
subparser = subparsers.add_parser()
我有是我想要添加另一个命令行脚本,用它自己的解析器问题,作为一个子我主要脚本。是否有捷径可寻?
编辑:为了澄清,我有一个文件script.py
看起来是这样的:
def initparser():
parser = argparse.ArgumentParser()
parser.add_argument('--foo')
parser.add_argument('--bar')
return parser
def func(args):
#args is a Namespace, this function does stuff with it
if __name__ == '__main__':
initparser().parse_args()
所以我可以运行此类似:
python script.py --foo --bar
我想写一个模块app.py
这是一个命令行界面与几个子命令,所以我可以运行类似于:
python app.py script --foo --bar
而不是将所有initparser()
逻辑复制并粘贴到app.py
,我希望能够直接使用我从initparser()创建的解析器作为子解析器。这可能吗?