在一个命令行中具有多个子parser的python argparse

在一个命令行中具有多个子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=

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

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