【发布时间】:2013-03-09 22:26:45
【问题描述】:
我想用argparse来做一些代码,可以通过以下两种方式使用:
./tester.py all
./tester.py name someprocess
即要么指定all,要么指定name 和一些额外的字符串。
我尝试如下实现:
import argparse
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument('all', action='store_true', \
help = "Stops all processes")
group.add_argument('name', \
help = "Stops the named process")
print parser.parse_args()
这给了我一个错误
ValueError: mutually exclusive arguments must be optional
知道怎么做吗?在这种情况下,我也想避免使用子解析器。
【问题讨论】:
-
为什么要避免使用 sup 解析器?这看起来完全像一个子解析器问题!
-
它们已经在 suparsers 上运行。我想保持浅...但是如果没有其他解决方案,我将尝试使用两个级别的子解析器。
-
将
all更改为--all和name更改为--name。 -
@hughdbrown:我知道这行得通,但不是我问的。
标签: python python-2.7 argparse