当我将子命令与python argparse一起使用时,我可以获得所选的参数。
parser = argparse.ArgumentParser()
parser.add_argument('-g', '--global')
subparsers = parser.add_subparsers()
foo_parser = subparsers.add_parser('foo')
foo_parser.add_argument('-c', '--count')
bar_parser = subparsers.add_parser('bar')
args = parser.parse_args(['-g, 'xyz', 'foo', '--count', '42'])
# args => Namespace(global='xyz', count='42')
所以args
不包含'foo'
。仅仅写sys.argv[1]
是行不通的,因为可能有全局参数。如何获取子命令本身?
^{} 具有
dest
形式参数,描述如下:在下面使用子parser的简单任务函数布局的示例中,所选子parser位于
parser.parse_args().subparser
。Python docs on argparse sub-commands的最底部解释了如何执行此操作:
您还可以使用我找到的示例上面引用的
set_defaults()
方法。相关问题 更多 >
编程相关推荐