有没有必要的互斥参数在帮助部分中列出为可选的解决方案?

时间:2018-11-27 11:09:50

标签: python python-3.x

因此,使用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)

的操作

1 个答案:

答案 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提供。