在argparse中设置互斥集
我正在使用一个互斥组,但我希望有多个选项可以属于一个互斥的集合。我想让我的用法看起来像这样:
[--conf CONF | --hostname HOSTNAME --port PORT]
有没有什么办法可以实现这个?我试过给互斥组添加一个参数组,但互斥的部分并不适用于子组,这样就允许同时使用 --conf file --hostname host --port 22
了。
1 个回答
3
这不是一个使用 argparse 的答案,但仍然可能解决你的问题:使用 docopt 代替 argparse,可以让你只需写出你想要的用法模式,然后 docopt 会自动解析和验证传递给你程序的参数。在你的情况下,
prog_name (--conf CONF | --hostname HOST --port PORT)
这样可以实现你想要的互斥组。