通常,要在其中添加子解析器,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() 创建的解析器作为子解析器,而不是将所有initparser()
逻辑复制并粘贴到。app.py
这可能吗?