如何解决我如何告诉 argparse 只允许一个参数一次?
如何告诉 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
我查看了 nargs
选项,但它表示 --out
应考虑以下多少个参数,而不是我可以传递 --out
的频率。
有 required
选项强制用户提供参数(至少一次),但我正在寻找限制参数使用频率的上限,而不是下限。
我见过 Only one command line argument with 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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。