在一个命令行中具有多个子parser的python argparse
我试图在一个命令行中解析多组参数。 setup1和setup2都可以有相同的参数在一个命令行中具有多个子parser的python argparse,python,argparse,subparsers,Python,Argparse,Subparsers,我试图在一个命令行中解析多组参数。 setup1和setup2都可以有相同的参数 python3 setup1 --param1 1 --param2 0 setup2 --param1 0 --param2 -1 我试图使用下面的子参数,但似乎一次只能用于一组子参数 有没有人能告诉我怎么做 import argparse import sys def do_parse_args(argv): parser = argparse.ArgumentParser(description=
python3 setup1 --param1 1 --param2 0 setup2 --param1 0 --param2 -1
我试图使用下面的子参数,但似乎一次只能用于一组子参数
有没有人能告诉我怎么做
import argparse
import sys
def do_parse_args(argv):
parser = argparse.ArgumentParser(description='Multiple subparsers')
subparsers = parser.add_subparsers(dest='command')
setup1 = subparsers.add_parser('setup1', help='parameters for setup1')
setup1.add_argument(
'--param1',
action='store'
)
setup1.add_argument(
'--param2',
action='store'
)
setup2 = subparsers.add_parser('setup2', help='parameters for setup2')
setup2.add_argument(
'--param1',
action='store'
)
setup2.add_argument(
'--param2',
action='store'
)
return parser.parse_args(argv)
def main(argv=None):
args = do_parse_args(argv)
ret = 0
print(args)
return ret
if __name__ == "__main__":
sys.exit(main())
subparsers
是一个位置参数。一旦setup2
提供了解析操作,解析操作就会传递给该子解析器。子Parser无法处理的任何内容都是无法识别的
。主解析器不恢复解析argparse
不提供执行多组参数的方法。subparser
是一个positional
参数。一旦setup2
提供了解析操作,解析操作就会传递给该子解析器。子Parser无法处理的任何内容都是无法识别的
。主解析器不恢复解析argparse
不提供执行多组参数的方法。
(venv_cvaas) C:\Work\python_hello>python hello.py setup2 --param1 1 setup1 --param1 1
usage: hello.py [-h] {setup1,setup2} ...
hello.py: error: unrecognized arguments: setup1
(venv_cvaas) C:\Work\python_hello>python hello.py setup1 --param1 1 setup2 --param2 0
usage: hello.py [-h] {setup1,setup2} ...
hello.py: error: unrecognized arguments: setup2