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

为什么ArgumentParser返回错误:无法识别的参数?

ArgumentParser返回错误"无法识别的参数"是因为在命令行中传入了不被解析器识别的参数。

ArgumentParser是Python中的一个模块,用于解析命令行参数。它可以帮助我们定义和解析命令行参数,并生成帮助信息。当我们使用ArgumentParser解析命令行参数时,如果传入了不被解析器识别的参数,就会返回错误"无法识别的参数"。

这个错误通常发生在以下几种情况下:

  1. 传入了未定义的参数:当我们定义ArgumentParser时,需要使用add_argument()方法定义可接受的参数。如果传入了未定义的参数,解析器就无法识别,会返回"无法识别的参数"错误。
  2. 参数格式错误:ArgumentParser对参数的格式有一定的要求,比如参数的前缀、分隔符等。如果传入的参数格式不符合要求,解析器也无法识别,会返回错误。

为了解决这个问题,我们可以检查传入的参数是否正确,并确保定义了所有可能的参数。如果需要接受多个参数,可以使用add_argument()方法多次定义。

以下是一个示例代码,演示如何使用ArgumentParser解析命令行参数:

代码语言:txt
复制
import argparse

# 创建ArgumentParser对象
parser = argparse.ArgumentParser(description='这是一个示例程序')

# 添加参数
parser.add_argument('--name', help='姓名')
parser.add_argument('--age', type=int, help='年龄')

# 解析命令行参数
args = parser.parse_args()

# 打印参数值
print('姓名:', args.name)
print('年龄:', args.age)

在命令行中运行该程序时,可以传入--name--age参数,例如:

代码语言:txt
复制
python program.py --name Alice --age 25

输出结果为:

代码语言:txt
复制
姓名: Alice
年龄: 25

如果传入了未定义的参数,或者参数格式不正确,就会返回"无法识别的参数"错误。

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

  • 腾讯云命令行工具:https://cloud.tencent.com/document/product/440/6176
  • 腾讯云函数计算:https://cloud.tencent.com/product/scf
  • 腾讯云容器服务:https://cloud.tencent.com/product/ccs
  • 腾讯云云服务器:https://cloud.tencent.com/product/cvm
  • 腾讯云数据库:https://cloud.tencent.com/product/cdb
  • 腾讯云CDN加速:https://cloud.tencent.com/product/cdn
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网:https://cloud.tencent.com/product/iot
  • 腾讯云移动开发:https://cloud.tencent.com/product/mobdev
  • 腾讯云对象存储:https://cloud.tencent.com/product/cos
  • 腾讯云区块链:https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙:https://cloud.tencent.com/product/mu
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

此外,如果没有至少一个命令行参数,将生成错误消息。...这个对象只有一个方法add_parser(),它接受命令名和任何ArgumentParser构造函数参数,并返回一个可以像往常一样修改的ArgumentParser对象。...parser.set_defaults(bar=42, baz='badger')>>> parser.parse_args(['736'])Namespace(bar=42, baz='badger', foo=736)注意,解析器级别的默认值总是覆盖参数别的默认值...ArgumentParser.format_help()返回一个包含帮助消息的字符串,包括程序使用情况和关于ArgumentParser注册的参数的信息。...它的工作原理很像parse_args(),只是在出现额外参数时不会产生错误。相反,它返回一个包含填充名称空间和剩余参数字符串列表的两项元组。

6.8K20

python-argparse

程序定义它需要什么参数,argparse 解决如何解析这些来自sys.argv 的参数 argparse 同样自动生成帮助和使用说明信息并且当使用者给出错误参数时分发错误 #引入模块 import argparse...#构建ArgumentParser对象,用来保存解析命令行所得的信息 parser = argparse.ArgumentParser(description='Process some intergers...#调用add_argument() 告诉ArgumentParser对象如何处理命令行参数 parser.add_argument('intergers', metavar='N', type=int,...() 解析后返回的名字,如不指定名字,则使用– 或者- 之后的名字 parse_args() 默认参数来自sys.argv 返回一个包含解析后的参数的namespace 其他功能 子命令 即命令之下包含又一层命令...parsing parse_known_args()返回一个包含两个元素的元组,第一个是包含可选参数的namespace, 第二个是包含剩下的参数的list 代码示例 ### prog.py import

78010

python自学argparse模块

parser = argparse.ArgumentParser() # 实例化一个对象,默认参数一堆,只有description参数可以设置一下 parser.add_argument() # 一次加入每一个参数或选项...但是如果没有定义type,那么用default=1的话传输的参数是int,但是你自己自定义参数的话,就无法传入int类型了。...只有短参数的情况下才是用短参数的名字取值。当然也可以指定一个别的变量名。 和位置参数相反,选项参数默认是非必须。...指定选项参数的变量名 就如上面讲的,执行选项参数的变量名 import argparse parser = argparse.ArgumentParser(description='解析命令行参数')...parser.add_argument('-v', '--verbose', help='increase verbosity') # 最后返回 return parser.parse_args

1.5K10

Python中的参数传递与解析

其中跟冒号的短选项需要后接参数,如'o:'表示'-o'选项需要接参数。 3. 长选项列表。其中跟等号的长选项需要后接参数。 getopt返回一个元组,元组包括两个列表opts和args。...err.opt是出错时正在解析的选项,err.msg是错误消息。 出错的情况包括: 1. 选项没有在传入参数中的短选项或者长选项列表定义。 2. 需要带参数的选项没有跟参数。 3....: epilog指定的字符串将会显示在帮助文档的最后 parents: 一个 ArgumentParser对象的列表,这些对象的选项和参数也会被继承 add_help: 添加-h/--help选项,默认为..., nargs][, const][, default][, type][, choices][, required] [, help][, metavar][, dest]) name将会作为解析后返回的对象...args的属性,存储参数的值,flags定义指定的选项,flag的名字也会作为解析后返回的对象的属性,存储该选项的参数

2.1K70

「形色」专访:爆款识花软件的炼成之路

如果不是对植物有所研究的小伙伴,在分辨如上图这种特征相似的花时,往往会出现错误,而这时,就凸显了花软件的作用。...有人提出这样一种看法,「形色识别的准确度比较高是因为前期训练数据比较多,而微软花识别率太低是因为训练数据少,但他们的算法相对来说比较优秀。」...,数量的上限大约在 500 种,超过这个数量级,系统的工作量和数据库的承载能力都无法实现。...形色表示,在某种程度上,计算机可以看到很多人眼无法辨识的特征。...现在,形色 App 已经入驻上百万植物专家和植物爱好者,当系统碰到实在无法别的植物,用户可以直接上传到鉴定区,植物专家和爱好者会在几分钟内给出他们的答案。

2.2K40

基于信息理论的机器学习-中科院自动化所胡包钢研究员教程分享04(附pdf下载)

本次tutorial的目的是,1.介绍信息学习理论与模式识别的基本概念与原理;2.揭示最新的理论研究进展;3.从机器学习与人工智能的研究中启发思索。...如果应用贝叶斯分类器与0-1代价,无拒类别。解析解表明小类全部错误,大类完全正确。 而这实际对应了无信息分类(zero-information classification)中的一种。...其中我们先计算无拒类别下的情况,在调整归一化代价参数下获得最大互信息后,该归一化代价参数固定。...开始计算拒类别情况,其中有两个新的归一化代价参数,获得最大互信息后,可以获得唯一解释的三个归一化代价参数。 读者可以思考为什么这会是唯一解释,而不存在不一致性解释的问题?...但是它们均无法在拒分类学习中胜任。而互信息分类器在拒分类学习中表现了独特的优势。该方法能够根据数据的分布自动平衡误差类别与拒类别。

1.8K70

《Python实例》基础之argparse,提供一个友好的接口说明,老大说我做的真好

argparse 可以让你轻松的编写用户友好的命令行接口, argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。...Author: 香菜 @time: 2021/8/2 0002 下午 8:02 """ import argparse def get_parser(): parser = argparse.ArgumentParser...argparse.ArgumentParser(description='工作目录中文件后缀名修改') 2、增加几个参数 parser.add_argument('work_dir', metavar...你可以加个 print 在函数内验证一下 4.2 调用这个文件执行: python argFile.py 'aa' 'jpg' 'png' 4.3 pycharm 中调用传参文件 在pycharm 中执行需要参数的文件如果不传递参数会报下面的错误...5、总结 argparse 的应用场景很明确就是为自己的程序提供命令行接口说明, 这只是入门级别的,如果你想给你的程序更好的参数提示,可以查阅相关文档。

65530

被踢出去的用户

0 在还没有掌握全部证据之前就下结论会犯严重的错误,会使判断带有偏见。——《血字的研究》 “齐,路老板又来邮件了。”白娜一脸无耐地说。 “一定没好事吧?”...但这次用户被踢出的问题,齐前前后后处理过三次,都无法定位。...齐以前在读写缓存的地方加了很详细的日志,并没看到任何错误发生。“缓存”作案的可能性也不大。 最后一个嫌犯是心跳请求。...但是这一次,为什么新版的IE也不行了呢? 现在,齐的目光集中在了上传文件的后台API上。这是这次发现的新嫌疑人,不,还有IE,可能是团伙作案。...齐打开发心跳请求的JavaScript文件,就是一个简单的setInterval,没有什么特别的。是什么,让这个2分钟的轮询停止了呢? 老夏呢?老夏呢?这老家伙跑哪去了?

1.1K20

python WAV音频文件处理——(3) 高效处理大型 WAV 文件

seconds 0.001 --overlap 95 将 Internet 广播电台录制为 WAV 文件 到目前为止,您一直在使用 waveio 包来方便地读取和解码 WAV 文件,这使您可以专注于更高级别的任务...当您使用 with 关键字输入新上下文时,新 WAVWriter 实例将返回自身。相反,退出上下文将确保即使发生错误,WAV 文件也能正确关闭。...不幸的是,此装饰器作用于 NumPy 数组,而您的新方法返回一个生成器对象。...两个包装器执行相同的操作,但生成器包装器在每次迭代中生成重新调整的值,而常规方法包装器返回它们。...创建一个名为 stereo_booster.py 的脚本,该脚本使用可选的强度参数将输入和输出 WAV 文件的路径作为参数: from argparse import ArgumentParser def

14810

NodeJS人脸识别(2)

可以看到返回success,代表用户从指定的用户组中被删除成功。接下来贴上请求参数返回参数: ? 创建用户组 本接口可以创建新的用户组,若用户组已存在则会返回错误信息 ?...可以看到返回success,代表新的用户组创建成功。接下来贴上请求参数返回参数: ? 删除用户组 本接口可以删除用户组,若用户组不存在则会返回错误信息 ? 我们先看下测试结果: ?...frr_1e-4:万分之一误率的阈值;frr_1e-3:千分之一误率的阈值;frr_1e-2:百分之一误率的阈值。...误率越低,准确率越高,相应的拒绝率也越高 可以看到返回的thresholds值为0.97.代表基本上不可能为同一个人。因为我选择的是两张不同的网络图片。...其他参数不多进行解释,接下来贴上请求参数返回参数可以自行理解: ? 到这里其实SDK关于人脸识别的所有接口都介绍完毕了。其实还有几个接口,必须账户进行企业实名认证才有权限调用,在这里我就不介绍了。

2K40

【转】Python 模块简介 -- argparse

创建解析器 使用 argparse 解析命令行参数时,首先需要创建一个解析器,创建方式如下所示: import argparse parser = argparse.ArgumentParser() ArgumentParser...conflict_handler: 解决冲突的策略,默认情况下冲突会发生错误: >>> parser = argparse.ArgumentParser(prog='PROG') >>> parser.add_argument...,如果没有指定该参数则默认为选项名去掉前缀后作为参数名,对于位置参数无效 >>> parser = argparse.ArgumentParser() >>> parser.add_argument('...required: 是否必选,只针对可选参数,对位置参数无效 help: help 信息 解析参数 要解析参数则需要用 ArgumentParser 对象的 parse_args() 方法,该方法运行会用...该方法返回一个 Namespace 对象,参数值通过属性的方式访问,也可以用内建的 vars() 函数转换为字典。

2.6K00

python命令行库如何实现子命令共享参数

本文的目标: 本文计划实现一个带有子命令的命令行工具,同时带有全局级别的配置参数(比如数据文件地址等)。在这个前提下使用不同的标准来比较所提到的三个命令行库。...这个脚本文件声明了两个子命令:model和model2,model会有一个命令行参数--cmd1_option1,model2会有一个命令行参数--cmd2_option1,同时全局会有一个参数--foo...唯一的问题是,全局参数的实现比价违背一般的习惯。...python main.py --foo="test" model --cmd1_option1="test2" 才能通过,如果把--foo放在子命令之后是无法别的。...import argparse # Same main parser as usual parser = argparse.ArgumentParser() # Usual arguments which

89220

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

,并在用户给程序传入无效参数时报出错误信息。...使用 我们先来看一个简单示例: import argparse # 创建解析对象 parser = argparse.ArgumentParser() # 解析 parser.parse_args()...-a,执行结果: usage: test.py [-h] test.py: error: unrecognized arguments: -a 接下来我们看一下如何自定义参数,因为上面示例中 ArgumentParser...:在参数帮助文档之后显示的文本(默认值:无) parents:一个 ArgumentParser 对象的列表,它们的参数也应包含在内 formatter_class:用于自定义帮助文档输出格式的类 prefix_chars...help:一个选项作用的简单描述 metavar:在使用方法消息中使用的参数值示例 dest:被添加到 parse_args() 所返回对象上的属性名 下面我们通过具体示例看一下: import argparse

58120

解决Jupyter Notebook使用parser.parse_args出现错误问题

问题: 在Jupyter Notebook中使用args传递参数时出现错误: 原始代码:args = parser.parse_args() usage: ipykernel_launcher.py [...补充知识:argarse.ArgumentParser.parse_known_args()解析 大致意思就是:有时间一个脚本只需要解析所有命令行参数中的一小部分,剩下的命令行参数给两一个脚本或者程序。...它很像parse_args(),但是它在接受到多余的命令行参数时不报错。相反的,返回一个tuple类型的命名空间和一个保存着余下的命令行字符的list。...举个栗子,新建一个test.py文件,在文件中写入如下代码 import argparse parser = argparse.ArgumentParser() parser.add_argument...Namespace(flag_int=0.02) ['--double', '0.03', 'a', '1'] 以上这篇解决Jupyter Notebook使用parser.parse_args出现错误问题就是小编分享给大家的全部内容了

3.1K20

一文读懂字符串String

为什么说字符串是不可变的 在工作中,我们经常要在代码中对字符串进行赋值和改变它的值,但是,为什么我们说字符串是不可变的呢?...所以,一旦一个string对象在内存(堆)中被创建出来,他就无法被修改。而且,String类的所有方法都没有改变字符串本身的值,都是返回了一个新的对象。...为什么String要设计成不可变 在知道了"String是不可变"的之后,大家是不是一定都很疑惑:为什么要把String设计成不可变的呢?有什么好处呢?...如以下代码: String s = "11111...1111";//其中有10万个字符"1" 当我们使用如上形式定义一个字符串的时候,当我们执行javac编译时,是会抛出异常的,提示如下: 错误: 常量字符串过长...那么,明明String的构造函数指定的长度是可以支持2147483647(2^31 - 1)的,为什么像以上形式定义的时候无法编译呢?

50320

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

我就废话不多说了,大家还是直接看代码吧~ #aaa.py #version 3.5 import os #这句是没用了,不知道为什么markdown在编辑代码时,不加这一句,就不能显示代码高亮[汗] import...补充知识:argparse解析命令行参数 argparse简介: 在argparse中,最常用的就是上述三部分了:创建一个ArgumentParser对象;使用add_argument()方法来为创建的...7、prefix_chars:options前的字符,默认为’-‘,可以添加其他字符,如’-+’,但是如果没有包括’-‘,那么对应的option如’-h’就无法解析。...3、nargs:ArgumentParser对象通常将一个动作与一个命令行参数关联。...parse_args()会返回填充好的Namespace对象 实例: 以faster rcnn代码中的命令行解析为例: #coding=utf-8 import argparse import sys

12.8K10

20 行代码编写一个简单的端口扫描器

这方面的工具也不要太多,搞过 CTF 的朋友会告诉你有多少端口扫描工具,那为什么还要用 Python 再自己实现一遍?...这个问题就像饭店里的菜已经很好吃了,为什么还要自己烧菜一样,主要还是为了适合自己的口味,添加自己需要的个性功能。 今天我们将用 20 行代码编写一个简单的端口扫描器。让我们开始吧!...argparse 库用于解释传递给我们脚本的参数。sys 库允许我们与系统交互。最后,time 库用来统计耗时。...() 这样脚本在运行的时候,第一个参数就可以传入一个主机名或 ip 地址,下文就可以通过 args.host 来使用。...sock.close() except KeyboardInterrupt: sys.exit() end = time.time() 如果 sock.connect_ex 返回

32120
领券