在argparse中设置互斥集

Luc*_*iel 9 python argparse

我正在使用一个互斥的组,但我不止一个选项在一个独家集合中.我希望我的用法看起来像这样:

[--conf CONF | --hostname HOSTNAME --port PORT]
Run Code Online (Sandbox Code Playgroud)

知道如何实现这一点吗?我已经尝试将参数组添加到互斥组,但互斥部分不适用于子组,它允许--conf file --hostname host --port 22

Rya*_*ona 3

不是使用 argparse 的答案,但仍然是问题的可能解决方案:使用docopt而不是 argparse 将使您只需编写使用模式,并让 docopt 自动解析和验证传递给程序的参数。就你而言,

prog_name (--conf CONF | --hostname HOST --port PORT)
Run Code Online (Sandbox Code Playgroud)

会给你你想要的相互排斥的群体。