因此,使用argparse创建了一个包含两个项目的互斥组。必须始终传递其中之一,因此我使用required=True
创建了该组。
它正常工作,如果我不使用它们中的任何一个调用脚本,它将失败并显示error: one of the arguments --foo --bar is required
但是,问题出在我仅使用-h
或--help
运行时。它将这些参数列为可选参数,但不是。
optional arguments:
-h, --help show this help message and exit
--foo foo
--bar bar
required arguments:
--alice alice
是否有任何解决方案可根据需要列出它们?由于add_mutually_exclusive_group()
不支持title
参数,因此我无法执行类似add_mutually_exclusive_group('must pick one', required=True)
答案 0 :(得分:3)
这是python的问题跟踪器中的open issue,但是有一个简单的解决方法。
只需创建一个标题组,然后将您互斥的组添加到该组中即可:
parser = argparse.ArgumentParser()
g1 = parser.add_argument_group(title='Foo Bar Group', description='One of these options must be chosen.')
g2 = g1.add_mutually_exclusive_group(required=True)
g2.add_argument('--foo',help='Foo help')
g2.add_argument('--bar',help='Bar help')
由Paul提供。