Python Argparse:解析多个子命令
做了一些研究,但找不到任何有效的解决方案。我试图解析以下命令行,其中“test”和“train”是两个独立的子命令,每个子命令都有不同的参数:Python Argparse:解析多个子命令,python,argparse,subcommand,subparsers,Python,Argparse,Subcommand,Subparsers,做了一些研究,但找不到任何有效的解决方案。我试图解析以下命令行,其中“test”和“train”是两个独立的子命令,每个子命令都有不同的参数: ./foo.py train -a 1 -b 2 ./foo.py test -a 3 -c 4 ./foo.py train -a 1 -b 2 test -a 3 -c 4 我一直在尝试使用两个子parser('test','train'),但似乎当时只能解析一个子parser。另外,如果有主解析器的子parser父级,例如命令“-a”不必同时
./foo.py train -a 1 -b 2
./foo.py test -a 3 -c 4
./foo.py train -a 1 -b 2 test -a 3 -c 4
我一直在尝试使用两个子parser('test','train'),但似乎当时只能解析一个子parser。另外,如果有主解析器的子parser父级,例如命令“-a”不必同时添加到子parser“train”和“test”中,那就太好了
有什么解决办法吗?以前有人问过这个问题,但我不确定找到这些问题的最佳方法 整个次Parser机制就是为一个这样的命令而设计的。有几件事需要注意:
创建位置参数;与选项不同a`positional只执行一次操作add_subparser
- 如果多次调用“add_subparsers”,则会引发错误
- 解析只围绕一个这样的调用构建
train
是设置好的,所以它也需要一个子parser。但对于是否需要副检察官,还有一个复杂的问题
或者,您可以检测并调用多个解析器,绕过子解析器
机制
从侧边栏
及
以前有人问过这个问题,但我不确定找到这些问题的最佳方式 整个次Parser机制就是为一个这样的命令而设计的。有几件事需要注意:
创建位置参数;与选项不同a`positional只执行一次操作add_subparser
- 如果多次调用“add_subparsers”,则会引发错误
- 解析只围绕一个这样的调用构建
train
是设置好的,所以它也需要一个子parser。但对于是否需要副检察官,还有一个复杂的问题
或者,您可以检测并调用多个解析器,绕过子解析器
机制
从侧边栏
及
您可以使用
parents
将公共参数添加到多个子parser。或者您可以为主解析器定义-a
。您可以使用parents
向多个子解析器添加公共参数。或者您可以为主解析器定义-a
。