我试图在一个命令行中解析多组参数。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='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())
(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