Python3中使用argparse模块解析命令行参数

article/2025/8/15 6:18:03

      argparse是Python的一个标准模块,用于解析命令行参数,即解析sys.argv中定义的参数。实现在:https://github.com/python/cpython/blob/main/Lib/argparse.py

      argparse模块还会自动生成帮助和使用信息,即在最后加-h或--help。当用户输入的参数无效时,会触发error,并给出出错原因。

python test_argparse.py -h
python test_argparse.py --help

      使用argparse的步骤:

      1.创建解析器:argparse.ArgumentParser(),ArgumentParser是个class,构造它时有很多参数可以指定,若不指定这些参数都使用默认值,如description=None:此python程序功能的描述;add_help=True:添加-h/--help选项

parser = argparse.ArgumentParser(description="test argparse's use", add_help=True)

      2.添加参数:parser.add_argument(*args, **kwargs):*args允许函数接受任意数量的位置参数(positional arguments),**kwargs允许函数接受任意数量的关键字参数。Python不允许位置参数跟在关键字参数之后。

      (1).name or flags:一个名字,位置参数(positional arguments),不带有"-"或"--",如foo;一个可选字符串的列表,如-f, --foo。当parse_args()被调用时,可选参数会以"-"前缀识别,剩下的参数则会被假定为位置参数。

parser.add_argument("integers", metavar="N", type=int, nargs="+", help="an integer for the accumulator") # positional argument
parser.add_argument("--sum", dest="accumulate", action="store_const", const=sum, default=max, help="sum the integers(default: find the max)") # optional argumentargs = parser.parse_args()
print(args.accumulate(args.integers)) # print either the sum or the max of the command-line integers

     

       (2).action:ArgumentParser对象将命令行参数与action相关联。这些action可以做与它们相关联的命令行参数的任何事,尽管大多数action只是简单的向parse_args()返回的对象上添加一个属性。action关键字参数指定应如何处理命令行参数。默认的action是"store",存储参数的值。

      (3).nargs:此关键字参数将不同数量的命令行参数与单个操作相关联。

      "?":如果不存在命令行参数,则会使用default值;还有一种情况,"-"选项字符串存在,但后面没有跟着命令行参数,则会使用const值。

      "*":所有命令行参数都收集到一个列表中。

      "+":与"*"类似,但至少存在一个命令行参数,否则会产生错误消息。

parser.add_argument('--foo', nargs='?', const='c', default='d')
args = parser.parse_args()
print(args.foo) # print 'c' or 'd' or command-line input

     

       (4).const:此关键字参数用于保存不是从命令行中读取但被各种ArgumentParser操作所需的常量值。对'store_const'和'append_const' action,const关键字参数必须给出;对其它action,默认为None。

      (5).default:此关键字参数用于在命令行参数不存在应使用的值,默认值为None。

      (6).type:此关键字参数允许执行任何必要的类型检查和类型转换。

      (7).choices:某些命令行参数应当从一组受限值中选择,这些可以通过将容器对象作为choices关键字参数传递给add_argument()来处理。当执行命令行解析时,参数值将被检查,如果参数不是可接受的值之一将触发错误消息。

parser.add_argument('addr', type=str, choices=['csdn', 'github'])
args = parser.parse_args()
print("addr:", args.addr)

     

       (8).required:通常,argparse模块假定"-f"和"--bar"等标志表示可选参数,在命令行中始终可以省略这些参数。要让一个选项成为必需的,则可以将required关键字参数指定为True。

      (9).help:包含参数简短描述的字符串。通常在命令行中使用-h或--help时,这些help描述将与每个参数一起显示。

      (10).metavar:当ArgumentParser生成帮助消息时,它需要某种方式来引用每个预期的参数。默认情况下,ArgumentParser对象使用dest值作为每个对象的"name"。默认情况下,对于位置参数action,直接使用dest值,对于可选参数action,dest值是大写的。可以使用metavar来指定一个替代名称。

parser.add_argument('--foo')
parser.add_argument('--bar', metavar='XXX')
args = parser.parse_args()

     

      (11).dest:大多数ArgumentParser操作都会添加一些值作为parse_args()返回的对象的一个属性。此属性的名称由add_argument()的dest关键字参数确定。

      3.解析参数:parser.parse_args(),将参数字符串转换为对象并将其设为命名空间的属性,返回带有成员的命名空间。

      更多介绍参考:https://docs.python.org/zh-cn/3.8/library/argparse.html

      GitHub:https://github.com/fengbingchun/Python_Test


http://chatgpt.dhexx.cn/article/jKRG6tSs.shtml

相关文章

argparse教程

argparse教程 argparse是用来干什么的?位置参数和可选参数测试argparse的功能test1test2test3test4test5-可选参数test6-action选项test7-短选项test8-同时使用位置参数和可选参数test9test10-限定参数的取值范围test11-action"count"test12-None无法和in…

argparse 模块详解

文章目录 1. argparse 模块简介2. 未使用argparse示例3. 使用argparse示例3.1 argparse简单示例3.2 argparse进阶示例3.2.1 可选参数设置3.2.2 可选参数引用名3.2.3 清除帮助中的参数名信息3.2.4 必选参数设置3.2.5 列表参数(多参数)传入设置3.2.6 互斥参…

python中的argparse基本用法

1、argparse是一个python模块,用途是:命令行选项、参数和子命令的解释。 2、使用步骤: 导入argparse模块,并创建解释器添加所需参数解析参数 3、用法示例: import argparse# 1.创建解释器 parser argparse.Argume…

argparse简介

一、argparse简介 argparse 模块是 Python 内置的用于命令项选项与参数解析的模块,argparse 模块可以让人轻松编写用户友好的命令行接口,能够帮助程序员为模型定义参数。 argparse定义四个步骤 导入argparse包 ——import argparse创建一个命令行解析…

绕过tp路由器管理密码_TP LINK路由器的登陆网址是什么?

旧版本的TP-Link路由器的登陆网址是:192.168.1.1;新版本的TP-Link路由器的登陆网址是:http://tplogin.cn;TP-Link迷你路由器的登陆网址是:192.168.1.253。接下来详细介绍: 一、旧版本的TP-Link路由器的登陆…

【TP5.1】Config的用法

需要读取某个一级配置的所有配置参数,可以使用 需要引入 use Config; 使用助手函数: config(app.name) config(app.); 这种类型的使用app. 这种类型的使用.code即可

TP LINK GRE L2TP介绍

(Virtual Private Network, 虚拟专用网络)是一个建立在公用网(通常是因特网)上的专用网络,但因为这个专用网络只是逻辑存在并没有实际物理线路,故称为虚拟专用网。 随着因特网的发展壮大,越来越多的数据需要在因特网上…

百信计算机管理员登录账号密码,tplogin.cn管理员密码是多少 | 192路由网

TP-Link TL-WR745N无线路由器配置简单,不过对于没有网络基础的用户来说,完成路由器的安装和无线网络密码和名称的设置,仍然有一定的困难,本文www.192luyou.com介绍TP-Link TL-WR745N无线路由器无线网络密码和名称的设置方法! TP-L…

Tplmap用法

Tplmap下载:安装包可查看我的下载资源页面 Python环境:2.7 (这一点很重要很重要很重要) Python所需要的包: PyYAML5.1.2 certifi2018.10.15 chardet3.0.4 idna2.8 requests2.22.0 urllib31.24.1 wsgiref0.1.2 (这些包只有在pyth…

TPlinker解读

参考: 关系抽取之TPLinker解读加源码分析 TPLinker 实体关系抽取代码解读 实体关系联合抽取:TPlinker TPLinker中文注释版 Tagging TPLinker模型需要对关系三元组(subject, relation, object)进行手动Tagging,过程分为三部分: &…

TP6中GatewayWorker的用法

一、参考网站 tp开发手册:https://www.kancloud.cn/manual/thinkphp6_0/1147857 workman与tp框架结合参考:http://doc2.workerman.net/work-with-other-frameworks.html 开发手册只介绍了Workman的使用方法,没有介绍GatewayWorker的使用方…

tp5框架Fastadmin中的Log日志如何去用

首先fastadmin是基于tp5的框架进行开发,在我们使用fastadmin写好接口后,接口在测试时没有任何问题,当前端进行访问时却无法进行交互,这是就可以使用tp5框架自带的Log日志; 下面就为大家介绍Log的使用: use think\Log; 在你使用的php文件下引入Log日志。 Log的使用方法: 一…

TP框架如何开启log日志

1.日志的处理工作是由系统自动进行的,在开启日志记录的情况下,会记录下允许的日志级别的所有日志信息。 其中,为了性能考虑,SQL日志级别必须在调试模式开启下有效,否则就不会记录。 系统的日志记录由核心的Think\Log类…

tplink路由器设置网址方法

tplink路由器设置网址的方法很多的用户都不知道,其实这个路由器可以通过两种方式来进行设置,十分的方便,如果你还没有完成设置不妨来试一试。 tplink路由器设置网址: 电脑: 1、首先打开浏览器,输入“192…

tp5日志

日志记录和跟踪调试。由于日志记录了所有的运行错误,因此养成经常查看日志文件的习惯,可以避免和及早发现很多的错误隐患。日志还有其他作用,用于输出一些不方便显示的调试的信息。 可以给多应用,或者前后端,分别配置…

TP Link 路由器 设置

入手某型号的TP LINK 路由器一台。希望做些定制化的设置。记录一下。 1,光猫拨号改为路由器拨号 光猫的型号是吉比特某款,其地址是192.168.1.1,此光猫没有无线。所接的路由器地址是192.168.2.1。 1,先将光猫的设置全部备份。2种…

TP5.1使用日志

日志我们在线上项目调试bug的利器,所以我们需要掌握 日志要记录的是错误信息,所以只需要将测试错误改为你需要获取的错误信息即可 1.引入think\Log这个类 2.打开log文件

TPLinker

# 笔记 1、长文本划分为短文本的时候,是以模型底层分词的个数来判断的 2、输入的X必须转换成id,输入的Y也必须转换成id,这样X输入得到的结果P才能和Y做比对,所有的模型都是围绕这个根基做转换,确认好X和Y,把…

渗透工具TPLogScan:ThinkPHP3和5日志扫描工具,提供命令行版和BurpSuite插件版,尽可能发掘网站日志信息

Git地址: r3change/TPLogScan: ThinkPHP全日志扫描工具,命令行版和BurpSuite插件版 (github.com) ThinkPHP3和5日志扫描工具,提供命令行版和BurpSuite插件版,尽可能发掘网站日志信息 命令行版 安装 git clone https://github.c…

Cadence virtuos617安装教程

Cadence virtuos安装教程 所有安装文件可在如下地址下载 链接:https://pan.baidu.com/s/1lZdRtzO1vTMHp7fmLHWGjQ?pwd=svwi 提取码:svwi下载的文件放到共享目录下。关于共享目录的设置可查看百度;并命名为Linux_space,文件名更改为Cadence.如下图 连接网络 安装虚拟机工…