首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

argparse是Python标准库中用于解析命令行参数和选项的模块。它提供了一种简单而灵活的方式来处理命令行输入,并生成帮助信息。

在这个错误中,'nargs必须是%r才能提供const‘% OPTIONAL,意味着在使用argparse时,nargs参数的值不符合要求,无法提供const值。

nargs参数用于指定命令行参数的数量,它可以接受以下几种取值:

  • '?':表示该参数最多只能出现一次,如果出现则将其值存储,否则将默认值存储。
  • '*':表示该参数可以出现任意次数,将其值存储为一个列表。
  • '+':表示该参数至少出现一次,将其值存储为一个列表。
  • 整数:表示该参数出现的固定次数,将其值存储为一个列表。

而const参数用于指定一个常量值,当命令行中出现该参数时,将使用const值作为参数的值。

根据错误信息,'nargs必须是%r才能提供const‘% OPTIONAL,可以推测出在使用argparse时,nargs参数的值被设置为了'OPTIONAL',而这是不符合要求的。

正确的使用方式是将nargs参数设置为上述提到的几种取值之一,而不是字符串'OPTIONAL'。

以下是一个使用argparse的示例代码:

代码语言:txt
复制
import argparse

parser = argparse.ArgumentParser(description='这是一个示例程序')
parser.add_argument('--input', nargs='?', const='default', default='default', help='输入文件')
parser.add_argument('--output', nargs='*', default=[], help='输出文件')

args = parser.parse_args()

print('输入文件:', args.input)
print('输出文件:', args.output)

在上述示例中,我们创建了一个ArgumentParser对象,并定义了两个命令行参数:'--input'和'--output'。'--input'参数使用了'nargs'为'?',表示最多只能出现一次;'--output'参数使用了'nargs'为'*',表示可以出现任意次数。

当我们运行该程序时,可以通过命令行传入参数,例如:

代码语言:txt
复制
python program.py --input input.txt --output output1.txt output2.txt

输出结果为:

代码语言:txt
复制
输入文件: input.txt
输出文件: ['output1.txt', 'output2.txt']

这样,我们就成功地使用argparse解析了命令行参数,并获取了相应的值。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云函数(云原生应用开发):https://cloud.tencent.com/product/scf
  • 腾讯云数据库(数据库服务):https://cloud.tencent.com/product/cdb
  • 腾讯云CDN(内容分发网络):https://cloud.tencent.com/product/cdn
  • 腾讯云安全加速(网络安全):https://cloud.tencent.com/product/ddos
  • 腾讯云音视频处理(音视频处理):https://cloud.tencent.com/product/mps
  • 腾讯云人工智能(人工智能):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(物联网):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发(移动开发):https://cloud.tencent.com/product/mobdev
  • 腾讯云对象存储(存储):https://cloud.tencent.com/product/cos
  • 腾讯云区块链(区块链):https://cloud.tencent.com/product/baas
  • 腾讯云虚拟专用网络(网络通信):https://cloud.tencent.com/product/vpc
  • 腾讯云云服务器(服务器运维):https://cloud.tencent.com/product/cvm

请注意,以上链接仅供参考,具体产品选择应根据实际需求进行评估。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

argparse------用于命令行选项、参数和子命令的解析器

程序定义了它需要什么参数,argparse将找出如何从sys.argv中解析这些参数。argparse模块还自动生成帮助和使用消息,并在用户给程序提供无效参数时发出错误。...否则,ArgumentParser将看到两个-h/——help选项(一个在父类中,一个在子类中),并引发一个错误。Note在通过parent =传递解析器之前,必须完全初始化它们。...因此,传递给add_argument()的第一个参数必须一系列标志,或者一个简单的参数名。...对于“store_const”和“append_const”操作,必须给出const关键字参数。对于其他操作,默认为None。default所有可选参数和一些位置参数都可以在命令行中省略。...required - 是否必须提供子命令,默认情况下为False。 help - 帮助输出中的子解析器组的帮助,默认为None。

6.8K20

python入门:argparse浅析 nargs=+作用

nargs关键字参数将一个动作与不同数目的命令行参数关联在一起: nargs=N,一个选项后可以跟多个参数(action=’append’时,依然一个选项后跟一个参数,只不过选项可以多次出现),参数的个数必须为...特殊的,对于可选项,如果命令行中出现了此可选项,但是之后没有跟随赋值参数,则此时给此可选项并不是赋值default的值,而是赋值const的值。 nargs=*,和N类似,但是没有规定列表长度。...4、const,一种定义action=’store_const’或action=’append_const’时使用。一种定义nargs=’?’...但有时位置参数的值必须一个’-‘开头的值,如’-f’,那么使用parser.parse_args([‘–‘, ‘-f’]),’–‘代表后续的所有传入值都需要看做位置参数。...Train a Fast R-CNN network optional arguments: -h, --help show this help message and exit --cfg CFG_FILE

12.8K10

python argparse处理命令行参数

从输出的内容可以看到,命令行参数可以分为两大类 可选参数 位置参数 option表示可选参数,有两种写法,一种一个短横杠后面加选项名称,称之为短选项,另外一种两个短横杠后面加选项名称,称之长选项。...位置参数必须提供的,前面不需要短横杠的修饰,直接就是参数名称,ls命令的用法示意如下 ls -l dir 其中-l就是一个选项, dir则是一个位置参数, 要在python脚本中实现这样的命令行传参,...在该模块中,关键的掌握add_argument方法的使用,该方法有多个参数,列表如下 1. name 表示参数的名称,选项可以同时提供短选项和长选项,也可以只提供其中的一种,位置参数直接写参数名称即可...>>> parser.add_argument('file', type = argparse.FileType('r')) _StoreAction(option_strings=[], dest=...'file', nargs=None, const=None, default=None, type=FileType('r'), choices=None, help=None, metavar=None

1.6K20

parser.add_argument()用法——命令行选项、参数和子命令解析器

argparse一个Python模块:命令行选项、参数和子命令解析器。...通过在程序中定义好我们需要的参数,然后 argparse 将会从 sys.argv 解析出这些参数。argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。...;此外,也可以继承 argparse.Action 自定义参数解析; nargs - 应该读取的命令行参数个数,可以是具体的数字,或者?...号,当不指定值时对于 Positional argument 使用 default,对于 Optional argument 使用 const;或者 * 号,表示 0 或多个参数;或者 + 号表示...const - action 和 nargs 所需要的常量值。 default - 不指定参数时的默认值。 type - 命令行参数应该被转换成的类型。

1.7K20

Python 基础(二十一):argparse 模块

,并在用户给程序传入无效参数时报出错误信息。...fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True, allow_abbrev=True) 这个方法用来创建解析器对象的...None) conflict_handler:解决冲突选项的策略(通常是不必要的) add_help:为解析器添加一个 -h/--help 选项(默认值:True) allow_abbrev:如果缩写无歧义的...][, const][, default][, type][, choices][, required][, help][, metavar][, dest]) 定义单个的命令行参数应当如何解析,看一下参数说明...: name or flags:一个命名或者一个选项字符串的列表,例如:-f,--foo action:当参数在命令行中出现时使用的动作基本类型 nargs:命令行参数应当消耗的数目 const:被一些

58120

python: argparse库 & 命令行解析工具

API ArgumentParser.add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices...;此外,也可以继承 argparse.Action 自定义参数解析; nargs - 应该读取的命令行参数个数,可以是具体的数字,或者?...号,当不指定值时对于 Positional argument 使用 - default,对于 Optional argument 使用 const;或者 * 号,表示 0 或多个参数;或者 + 号表示...const - action 和 nargs 所需要的常量值。 default - 不指定参数时的默认值。 type - 命令行参数应该被转换成的类型。...help - 参数的帮助信息,当指定为 argparse.SUPPRESS 时表示不显示该参数的帮助信息. metavar - 在 usage 说明中的参数名称,对于必选参数默认就是参数名称,对于可选参数默认全大写的参数名称

68430

Python3 命令行参数解析

argparse 模块 Python 标准库中推荐的命令行解析模块,命令行参数解析在 windows 系统下不适用,但在 linux 系统下几乎要总是考虑命令行参数解析。...store_const,表示赋值为 const 的相反值,比如 store_true,代表参数赋值为 false; append,将遇到的值存储成列表,也就是如果参数重复则会保存多个值; append_const...,将参数规范中定义的一个值保存到一个列表; count,存储遇到的次数;此外,也可以继承 argparse.Action 自定义参数解析; nargs – 应该读取的命令行参数个数,可以是具体的数字,或者...号,当不指定值时对于 Positional argument 使用 default,对于 Optional argument 使用 const;或者 * 号,表示 0 或多个参数;或者 + 号表示...const – action 和 nargs 所需要的常量值。 default – 不指定参数时的默认值。 type – 命令行参数应该被转换成的类型。

1.2K11

python自学argparse模块

print(line.strip()) 将参数赋值给了位置参数'file',所以args.fine就是文件句柄,并且按type的要求打开了文件 定义默认值 从刚才开始必须要带参数才能运行程序了,...nargs的作用是用来限定输入这个参数的个数,默认情况下我们必须输入1个,使用'?'的话,就是允许不输入或者输入一个。'...和位置参数相反,选项参数默认是非必须。不输入选项的情况下取到的值None,输入选项但是又没在后面写值而且也没默认值,则会出错。 如果需要,也可以将选项设置为必须输入。...这里的变量名自己在dest里指定的了 print(args) # 看看整个的内容 选项参数-设为必须 使用required=True 后,这个选项就不再可选的了,而是必须输入 import argparse...', const="Test" ,那么没有-v 值None,有-v 的值就是"Test" ,此时-v后面不能跟值了,如果有则会被当做位置参数处理。

1.5K10

Python argparse标准库快速入门

nargs - 命令行参数应当消耗的数目。 const - 被一些 action 和 nargs 选择所需求的常数。 default - 当参数未在命令行中出现时使用的值。...默认情况下nargs会按照action的类型来判断参数个数,store和store_const会读取后面的一个值作为参数。 const 这个参数需要和带有const的action来配合使用。...import argparse parser = argparse.ArgumentParser() parser.add_argument('-foo', action='store', nargs...当然比较特殊的一个open,它会将参数作为文件来打开。 如果默认的open还不能满足,还可以使用argparse.FileType,它提供了读写模式、文件编码、缓冲区大小等详细设置。...required 指定参数是否必须的。 metavar和dest metavar参数用来指定参数的显示名称,而dest用来指定参数底层使用的属性名。

87010
领券