gpt4 book ai didi

python - 如何在没有 `-` 或 `--` 之前进行论证?

转载 作者:太空宇宙 更新时间:2023-11-04 01:26:00 24 4
gpt4 key购买 nike

我的灵感主要来自 为了这。这是我的闹钟应用程序的一部分:

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

它讨论了相互排斥的论点,但我认为回溯与实际问题关系不大。

最佳答案

如果你想让你的程序以这种形式接受参数

./yourprog time

./yourprog show

那么你要么使用subparsers ,或者你应该只让你的程序接受一个确定它做什么的“命令”参数。如果你想让 timeshow 命令有自己的参数,你需要子解析器;否则,“命令”参数会更容易。简单地删除连字符会使您的参数成为必需的位置参数,而不是命名的可选参数。那不是你想要的,也不符合“互斥”。

关于python - 如何在没有 `-` 或 `--` 之前进行论证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17914848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com