gpt4 book ai didi

Python argparse : how to detect duplicated optional argument?

转载 作者:行者123 更新时间:2023-12-05 00:22:17 25 4
gpt4 key购买 nike

我正在使用带有 optional 参数的 argparse,但我想避免这样的事情:script.py -a 1 -b -a 2
这里我们有两次 optional 参数'a',只返回第二个参数。我想获得两个值或获得错误消息。
我应该如何定义论点?

[编辑]
这是代码:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-a', dest='alpha', action='store', nargs='?')
parser.add_argument('-b', dest='beta', action='store', nargs='?')

params, undefParams = self.parser.parse_known_args()

最佳答案

append action 将收集重复使用列表中的值

parser.add_argument('-a', '--alpha', action='append')

生产 args命名空间如:
namespace(alpha=['1','3'], b='4')

解析后可以查看 args.alpha ,并接受或提示值的数量。 parser.error('repeated -a')可用于发出 argparse 样式的错误消息。

您可以在自定义 Action 类中实现类似的功能,但这需要了解此类类的基本结构和操作。我想不出任何可以在 Action 中完成的事情,也不能在之后的附加列表中完成。

https://stackoverflow.com/a/23032953/901925是一个不重复自定义的答案 Action .

您为什么使用 nargs='?'像这样带有标记的参数?没有 const参数 this 几乎没用(参见文档中的 nargs=? 部分)。

另一个类似的 SO: Python argparse with nargs behaviour incorrect

关于Python argparse : how to detect duplicated optional argument?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30149851/

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