我的灵感主要来自于git。这里是我的闹钟应用程序的一部分:如何在不使用`-`或`--`的情况下创建参数?
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument(
'--time',
metavar="HH:MM:SS",
help='time in 24 hour format separated by colon'
)
group.add_argument(
'--show',
action='store_true',
help='show the list of set alarms'
)
alarm = parser.parse_args()
if alarm.time:
writeTimeToTheDatabase()
if alarm.show:
extractTimeFromDatabase()
此就开始运行得非常好,在这一点上,我从双方的观点删除--
。我得到一个ValueError
这是类似的东西:
Traceback (most recent call last):
File "./alarm.py", line 65, in <module>
help='time in 24 hour format separated by colon'
File "/usr/lib/python2.7/argparse.py", line 1295, in add_argument
return self._add_action(action)
File "/usr/lib/python2.7/argparse.py", line 1515, in _add_action
raise ValueError(msg)
ValueError: mutually exclusive arguments must be optional
它谈论相互排斥的论点,但我认为回溯是不实际的问题密切相关。
在初始化解析器以检查第一个参数之前,您可以有一个步骤。 – JBernardo
@JBernardo你能否详细说明一下? –