我试图在不同组之间建立一个互斥组:我有参数-a,-b,-c,并且我想与-a 和-b 一起发生冲突,或者-a 和-c 一起发生冲突。帮助应该显示类似 [-a | ([-b] [-c])]。
以下代码似乎没有相互排斥的选项:
import argparse
parser = argparse.ArgumentParser(description='My desc')
main_group = parser.add_mutually_exclusive_group()
mysub_group = main_group.add_argument_group()
main_group.add_argument("-a", dest='a', action='store_true', default=False, help='a help')
mysub_group.add_argument("-b", dest='b', action='store_true',default=False,help='b help')
mysub_group.add_argument("-c", dest='c', action='store_true',default=False,help='c help')
parser.parse_args()
解析不同的组合 - 全部通过:
> python myscript.py -h
usage: myscript.py [-h] [-a] [-b] [-c]
My desc
optional arguments:
-h, --help show this help message and exit
-a a help
> python myscript.py -a -c
> python myscript.py -a -b
> python myscript.py -b -c
我尝试将其更改mysub_group
为add_mutually_exclusive_group
将所有内容都变成互斥的:
> python myscript.py -h
usage: myscript.py [-h] [-a | -b | -c]
My desc
optional arguments:
-h, --help show this help message and exit
-a a help
-b b help
-c c help
如何为 [-a | 添加参数 ([-b] [-c])]?