9
我正在使用一个互斥的组,但我有一个以上的选项在独占集之一中。我想我的使用看起来像这样:在argparse中设置互斥集合
[--conf CONF | --hostname HOSTNAME --port PORT]
任何想法如何实现这?我已经尝试将一个参数组添加到互斥组中,但互斥部分不适用于子组,但它允许--conf file --hostname host --port 22
我正在使用一个互斥的组,但我有一个以上的选项在独占集之一中。我想我的使用看起来像这样:在argparse中设置互斥集合
[--conf CONF | --hostname HOSTNAME --port PORT]
任何想法如何实现这?我已经尝试将一个参数组添加到互斥组中,但互斥部分不适用于子组,但它允许--conf file --hostname host --port 22
不是一个使用argparse的答案,但是仍然可以解决您的问题:使用docopt而不是argparse会让你只写你的使用模式,让docopt自动分析和验证传递给你的程序的参数。在你的情况,
prog_name (--conf CONF | --hostname HOST --port PORT)
会得到你想要的互斥组。
考虑将'--hostname'和'--port'折叠成一个'--host = HOST [:PORT]'条目。 – nneonneo 2013-02-20 17:06:58