我如何告诉 argparse 我只想允许一个命令行参数一次?
import sys
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
"--out",
required=True,
)
parsed = parser.parse_args(sys.argv[1:])
print(f"out: {parsed.out}")
如果我这样调用这段代码:
python3 argparsetest.py --out 1 --out 2 --out 3
它打印
出:3
但我宁愿错误地告诉用户该--out
参数只能使用一次。
我查看了该nargs
选项,但这表示应该考虑以下多少个参数--out
,而不是我可以通过--out
.
有一个required
选项可以强制用户提供参数(至少一次),但我正在寻找限制参数使用频率的上限,而不是下限。
我只见过一个带有 argparse 的命令行参数,但这是从 2013 年开始的,我希望现在有一种更简单的方法来做到这一点。
如何限制命令行标志的使用次数?
跟进我的评论:
import sys
import argparse
# args = sys.argv[1:]
args = "--out 1 --out 2 --out 3".split()
print(f"Input args: {args}")
parser = argparse.ArgumentParser()
parser.add_argument(
"--out",
action="append",
required=True,
)
parsed = vars(parser.parse_args(args))
for key, val in parsed.items():
if isinstance(val, list):
print(f"{key} specified {len(val)} times!")
parsed[key] = val[0] # or val[-1]
print(parsed)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句