【python】python中的argparse模块,教你如何自定义命令行参数

在这里插入图片描述

✨✨ 欢迎大家来到景天科技苑✨✨

🎈🎈 养成好习惯,先赞后看哦~🎈🎈

🏆 作者简介:景天科技苑
🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。
🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi,flask等框架,linux,shell脚本等实操经验,网站搭建,数据库等分享。

所属的专栏:python入门必备,基础语法到进阶实战教学
景天的主页:景天科技苑

文章目录

  • 一、argparse模块简介
    • 1.argparse定义的四个步骤
    • 2. 用法举例
  • 二、相关方法的参数详解
    • 1.add_argument() 方法
    • 2. 解析命令行的参数:parse_args()

一、argparse模块简介

python中的argparse模块,是 Python内置的用于命令项选项与参数解析的模块,argparse 模块可以让人轻松编写用户友好的命令行接口,用于命令行参数的解析,能够帮助程序员为模型定义参数
这意味着我们无需在代码中手动为变量赋值,而是可以直接在命令行中向程序传递相应的参数,再由变量去读取这些参数。

1.argparse定义的四个步骤

  • 导入argparse包 ——import argparse
  • 创建一个命令行解析器对象 ——创建 ArgumentParser() 对象
  • 给解析器添加命令行参数 ——调用add_argument() 方法添加参数
  • 解析命令行的参数 ——使用 parse_args() 解析添加的参数

2. 用法举例

# 导入库
import argparse# 1. 定义命令行解析器对象
parser = argparse.ArgumentParser(description='Usage of argparse')# 2. 添加命令行参数,可以简写,也可以写全称
parser.add_argument('-u','--username', type=str, default="jingtian")
parser.add_argument('-p','--password', type=str, default="123456")# 3. 从命令行中结构化解析参数
args = parser.parse_args()
print(args)#通过args对象.参数名,获取命令行参数值
username = args.username
pwd = args.password
print(f"解析出的参数,用户名:{username},密码:{pwd}")

我们定义了两个命令行参数 --username --password 。都有str类型的默认值
在这里插入图片描述

我们用朴实无华的大白话对上面代码进行解读,首先我们导入argparse这个包,然后包中的ArgumentParser类生成一个parser对象(其中的description对参数解析器的作用进行描述)
当我们在命令行显示帮助信息的时候会看到description描述的信息。
例如:python myargparse.py -h
在这里插入图片描述

接下来我们通过对象的add_argument函数来增加参数。
这里我们增加了username和password两个参数,最后采用对象的parse_args获取解析的参数。
命令行我们可以自己指定参数值,打印结果如下图所示:
如果不加参数,则使用我们设置的默认值
./myargparse.py
在这里插入图片描述

我们也可以在命令行自定义
./myargparse.py -u tianya -p 123
在这里插入图片描述

二、相关方法的参数详解

1.add_argument() 方法

(1)添加命令行参数
给一个 ArgumentParser 添加程序参数信息,是通过调用 add_argument() 方法完成的。通常,这些调用指定 ArgumentParser 如何获取命令行字符串并将其转换为对象。
这些信息在 parse_args() 调用时被存储在ArgumentParser实例化对象中,以供后续使用。add_argument() 方法定义如何解析命令行参数的呢?

(2)add_argument() 方法定义如何解析命令行参数
parser.add_argument(name or flags…[, action][, nargs][, const][, default][, type][,choices][, required][, help][, metavar][, dest])

参数详解:

name or flags: 普通参数或flag参数选项参数的名称或标签,例如 username 或者 -u, --username。Flag参数不需要指定参数值,只需要带有参数名即可。
action: 命令行遇到flags参数时的动作。有两个常见的动作,store_true:设定flag参数为true;store_false:设定flag参数为False。注意:如果直接运行程序,默认不读取该变量,要使用必须要进行传参,例如:python myargparse.py --username
nargs: 应该读取的命令行参数个数,可以是具体的数字,或者是?号,当不指定值时对于 Positional argument 使用 default,对于 Optional argument 使用 const;或者是 * 号,表示 0 或多个参数;或者是 + 号表示 1 或多个参数。
default: 不指定参数时该参数的默认值。
type: 命令行参数应该被转换成的数据类型。
required: 是否为必选参数或可选参数。
help: 参数的帮助信息。
metavar: 在 usage 说明中的参数名称,对于必选参数,默认就是参数名称,对于可选参数默认是全大写的参数名称。
dest: 解析后的参数名称,默认情况下,对于可选参数选取最长的名称,中划线转换为下划线.
choices: 参数可允许的值的一个容器。
const: action 和 nargs 所需要的常量值。
store_const:表示赋值为const;
append:将遇到的值存储成列表,也就是如果参数重复则会保存多个值;
append_const:将参数规范中定义的一个值保存到一个列表;
count:存储遇到的次数;此外,也可以继承 argparse.Action 自定义参数解析;

2. 解析命令行的参数:parse_args()

ArgumentParser对象通过 parse_args() 方法解析命令行的参数。它将检查命令行中每个参数,转换为适当的数据类型,然后调用相应的操作,并把参数结构化后存放在对象args中。
args = parser.parse_args()

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/10210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Pip】pip 安装第三方包异常:[SSL:CERTIFICATE_VERIFY_FAILED]解决方案

pip 安装第三方包异常:[SSL:CERTIFICATE_VERIFY_FAILED] 大家好 我是寸铁👊 总结了一篇pip 安装第三方包异常:[SSL:CERTIFICATE_VERIFY_FAILED]✨ 喜欢的小伙伴可以点点关注 💝 报错 今天在安装第三方包时报错如下: 解决方案 本质上是需要指定信任的镜像…

开启异步线程的方法

1,开启异步线程,在启动类上加注解: 2,自定义线程池: Configuration public class PromotionConfig {Beanpublic Executor generateExchangeCodeExecutor() {ThreadPoolTaskExecutor executor new ThreadPoolTaskExec…

搜维尔科技:【案例分享】Xsens用于工业制造艺术创新设计平台

用户名称:北京理工大学 主要产品:Xsens MVN Awinda惯性动作捕捉系统 在设计与艺术学院的某实验室内,通过Xsens惯性动作捕捉,对人体动作进行捕捉,得到人体三维运动数据,将捕到的数据用于后续应用研究。…

小心电子合同这个坑:手写签名图片

一、引言 在数字化浪潮的推动下,电子合同因其便捷性和高效性受到广泛应用。然而,在使用电子合同的过程中,一个看似简单的签名方式——手写签名图片,却可能带来意想不到的法律风险。本文将详细解析这一陷阱,并为大家提…

PMP证书好考吗?

PMP新考纲还颠覆了自己旧有的五大知识领域,将原来的五大过程组整合成新领域中过程的一部分,提出了新的商业环境、过程、人员三大知识领域。 最关键的是,在新考纲中明确写到: 重要注意事项。通过工作任务分析开展的研究证实&…

PX4FMU和PX4IO最底层启动过程分析(上)

PX4FMU和PX4IO最底层启动过程分析(上) 主处理器和协处理器的固件烧写和运行过程 PX4FMU:各种传感器数据读取、姿态解算、PWM控制量的计算、与PX4IO通信。负责飞控最主要的工作。 PX4IO(STM32F103):为PIXHA…

大模型面试常考知识点2

文章目录 1. LLM推理attention优化技术KV CachePageAttention显存优化MHA\GQA\MQA优化技术FlashAttention优化技术稀疏Attention1. Atrous Self Attention2. Local Self Attention3. Sparse Self Attention 2. LLM数据处理关键去重多样性保证构造扩充数据充分利用数据 参考文献…

【电路笔记】-无源高通滤波器

无源高通滤波器 文章目录 无源高通滤波器1、概述2、一阶高通滤波器的频率响应3、高通滤波器示例4、二阶高通滤波器5、RC 差异化因素高通滤波器与低通滤波器电路完全相反,因为这两个组件已互换,滤波器输出信号现在从电阻器两端获取。 1、概述 由于低通滤波器只允许低于其截止…

Shell编程之循环语句

目录 1.for循环语句(遍历循环) 1.1 for语句的结构 1.2 for语句的执行流程 1.3 for语句应用示例 1.4 echo命令参数 2.while循环语句 2.1 while语句应用示例 2.2 通过while循环读取行内容 3.until 4.双重循环 4.1 双重循环案例 4.2 循环的退出 …

从零开始详解OpenCV条形码区域分割

前言 在识别二维码之前,首先要划分出二维码的区域,在本篇文章中将从零开始实现二维码分割的功能,并详细介绍用到的方法。 我们需要处理的图像如下: 完整代码 首先我们先放出完整代码,然后根据整个分割流程介绍用到…

基于fastapi sqladmin开发,实现可动态配置admin

1. 功能介绍: 1. 支持动态创建表、类,属性,唯一约束、外键,索引,关系,无需写代码,快速创建业务对象; 2. 支持配置admin显示参数,支持sqladmin原生参数设置,动…

Istio 使用 Apache SkyWalking 进行服务链路追踪、链路监控告警

一、Istio 使用 Apache SkyWalking 链路追踪和告警 SkyWalking是一个开源的观测平台,用于从服务和云原生等基础设施中收集、分析、聚合以及可视化数据,SkyWalking 提供了一种简便的方式来清晰地观测分布式系统,甚至可以观测横跨不同云的系统…

终端安全管理防护软件排行榜2024(四大终端监控软件推荐)

你的企业存在这些问题吗? 数字化转型的深入和远程办公模式的普及,企业对终端安全管理的需求日益凸显。 确保终端设备的安全性不仅关乎数据保护、业务连续性,更直接影响企业的声誉与合规性。 2024年终端安全防护软件排行榜,有谁荣…

【MySQL的内置函数】

文章目录 一、日期函数1.current_date()2.current_time()3.current_timestamp4. date_add 穿越未来5.date_sub 回到过去6.datediff案例 二、字符串函数2.1charset2.2 concat ——拼接字符串2.3 ucase——转化成大写2.4 lcase——转化成小写2.5 left()2.6…

树与二叉树之间的转换

树转化成二叉树:兄弟相连留长子 1.加线:在兄弟之间加一条线 2.抹线:对每个结点,除了其左孩子外,去除其与其余孩子之间的关系 3.旋转:以树的根结点为轴心,将整树顺时针转45 二叉树转化成为树…

苹果 iPhone 15 Pro Max 称霸:智能手机市场势不可挡

苹果 iPhone 15 Pro Max 称霸:智能手机市场势不可挡 概述 在拥挤且竞争激烈的智能手机市场中,苹果的 iPhone 15 Pro Max 成为明显的赢家,在 2024 年第一季度最畅销智能手机排行榜上名列前茅。根据 Counterpoint Research 的数据&#xff0c…

将来会是Python、Java、Golang三足鼎立吗?

在开始前我有一些资料,是我根据网友给的问题精心整理了一份「 Java的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 软件工程里没有银弹&#xff…

uniapp、web网页跨站数据交互及通讯

来来来,说说你的创作灵感!这就跟吃饭睡觉一样,饿了就找吃的,渴了就倒水张口灌。 最近一个多月实在是忙的没再更新日志,好多粉丝私信说之前的创作于他们而言非常有用!受益菲浅,这里非常感谢粉丝…

前端nginx(windows操作系统)学习配置开发验证

Nginx概述 Nginx 作为负载均衡在 Linux 系统上具备很好的并发性能,并且占用极小的内存。但是在 Windows 系统上并不支撑较高并发,所以在Windows系统上选用Nginx作为负载均衡,需要考虑并发情况。 若并发需求低于 300,部署集群仅以…

使用 Valgrind 检测内存泄漏

Valgrind 是一个编程工具,用于内存调试、内存泄漏检测以及性能分析。Valgrind 工具集中的 Memcheck 是用于检测内存管理和线程错误的主要工具。 参考:https://blog.csdn.net/weixin_44046545/article/details/138417524 1、安装 Valgrind sudo apt-ge…