如何使用python argparse解析可选参数?
我正在尝试解析这样的命令行 cmd{command[command_OPTS]}如何使用python argparse解析可选参数?,python,parsing,argparse,Python,Parsing,Argparse,我正在尝试解析这样的命令行 cmd{command[command_OPTS]} cmd a {1,2} cmd b cmd c 在命令{a,b,c}中,当命令为“a”时,可能有一个命令_OPTS(choices)表示“a”,例如{1,2},b或c将没有任何参数。 以下是我尝试过的: import argparse if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument('-cmd
cmd a {1,2}
cmd b
cmd c
在命令{a,b,c}中,当命令为“a”时,可能有一个命令_OPTS(choices)表示“a”,例如{1,2},b或c将没有任何参数。
以下是我尝试过的:
import argparse
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('-cmd', nargs = '+', choices = ['a', 'b', 'c'])
# sub_parser = parser.add_subparsers()
# parse_a = sub_parser.add_parser('a')
# parser_a.add_argument("a", default = "1", choices = ["1", "2"])
args = parser.parse_args()
if args.cmd:
print args.cmd
如何用Python Argparse解析这个?看来这艘潜艇并不是为了解决这个问题
谢谢,将所有命令放在子菜单中
parser = argparse.ArgumentParser()
sub_parser = parser.add_subparsers(dest='cmd')
parser_a = sub_parser.add_parser('a')
parser_a.add_argument("a", choices = ["1", "2"])
parser_b = sub_parser.add_parser('b')
parser_c = sub_parser.add_parser('c')
args = parser.parse_args()
args.cmd
应该是a、b、c
中的一个。如果给定a
is,则它应该有一个args.a
属性,其值为'1'
或'2'
。该参数是必需的,因此指定默认值没有意义
从交互式ipython
shell:
In [13]: parser.parse_args(['b'])
Out[13]: Namespace(cmd='b')
In [14]: parser.parse_args(['c'])
Out[14]: Namespace(cmd='c')
In [15]: parser.parse_args(['a','1'])
Out[15]: Namespace(a='1', cmd='a')
请提供您遇到的问题的详细信息。您需要自己尝试解决这个问题,这样我们就可以调试一些东西了。否则,你可能需要雇用一个人来为你做这项工作。谢谢你的提示,我编辑了我的问题。