【发布时间】:2014-08-21 00:45:31
【问题描述】:
我在尝试允许将可选测试参数插入到我创建的 CLI 中时遇到问题。这是我能做的:
python test.py --test build --name foobar
其中 build 是一个子命令,而 --test 允许系统指向默认测试服务器。但是,我想允许用户在 --test 之后指定一个额外的、可选的服务器属性,这样用户就可以将测试服务器指向他们想要的任何地方。示例:
python test.py --test "<random http>" build --name foobar
我的代码目前如下所示:
main_parser = argparse.ArgumentParser()
main_parser.add_argument('--test', action='store', nargs=1, dest='test_server', help='Use test server')
subparsers = main_parser.add_subparsers(help='SubCommands', dest='command')
build_parser = subparsers.add_parser('build', help = 'lists the build command(s) for the specified view/warehouse')
build_parser.add_argument('--name', action='store', nargs=1, dest='build_name')
但是,无论我将 nargs 更改为什么,它都会开始禁止原来的,即 --test。有什么办法可以两者兼得吗?
【问题讨论】:
-
可选?以及它应该如何判断下一个单词是可选参数还是下一个参数?你的语法模棱两可。
标签: python arguments argparse optional subcommand