2013-02-20 57 views
9

我正在使用一个互斥的组,但我有一个以上的选项在独占集之一中。我想我的使用看起来像这样:在argparse中设置互斥集合

[--conf CONF | --hostname HOSTNAME --port PORT] 

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

+0

考虑将'--hostname'和'--port'折叠成一个'--host = HOST [:PORT]'条目。 – nneonneo 2013-02-20 17:06:58

回答

3

不是一个使用argparse的答案,但是仍然可以解决您的问题:使用docopt而不是argparse会让你只写你的使用模式,让docopt自动分析和验证传递给你的程序的参数。在你的情况,

prog_name (--conf CONF | --hostname HOST --port PORT) 

会得到你想要的互斥组。