我的靈感主要來自於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你能否詳細說明一下? –