argparse 错误: 'nargs 必须是 %r 才能提供 const' % OPTIONAL)

Posted

技术标签:

【中文标题】argparse 错误: \'nargs 必须是 %r 才能提供 const\' % OPTIONAL)【英文标题】:argparse error: 'nargs must be %r to supply const' % OPTIONAL)argparse 错误: 'nargs 必须是 %r 才能提供 const' % OPTIONAL) 【发布时间】:2021-11-27 01:49:59 【问题描述】:

当我在 python 中使用以下代码时,我不断收到错误:raise ValueError('nargs must be %r to supply const' % OPTIONAL)

parser = argparse.ArgumentParser()
parser.add_argument('--username', type=str, required=True,
                    help="Username to login. Required")
parser.add_argument('--password', type=str, required=True,
                    help="Password to login. Required.")

parser.add_argument('--chromedriver', type=str, const=r'C:\histdata\batfiles\chromedriver.exe')
parser.add_argument('--output', type=str, const='C:\\histdata\\batfiles\\')

--chromedriver 在线失败。当我将下一行移到它之前进行测试时。它失败。那就是--output 行给出了同样的错误。我知道过去有人发布过类似的错误消息,但我仍然不知道如何修复它。

【问题讨论】:

您正在尝试添加可选参数(即没有required=True)并且需要您为nargs 设置一个值?如果您不提供nargs,argparse 会尝试从action 派生它,但您也不提供。 docs.python.org/3/library/argparse.html 'Nargs 必须是可选的才能提供 const"。您在寻找 default= 吗? 更具体地说,请参阅docs.python.org/3/library/argparse.html#const 【参考方案1】:

也许您想使用default 而不是const?前者用于存储参数的默认值,后者用于指定常量值,当提供参数时将被存储。

【讨论】:

以上是关于argparse 错误: 'nargs 必须是 %r 才能提供 const' % OPTIONAL)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 argparse 中使用带有 nargs='*' 参数的可选位置参数?

argparse:如何允许带有 nargs="*" 和选项的空列表

Python argparse:它是不是必须返回一个列表?

argparse 位置多项选择默认子集:无效选择

argparse模块见解

如何使 argparse 将所有参数视为位置?