【Python实用标准库】argparser使用教程
argparser使用教程
- 1.介绍
- 2.基本使用
- 3.add_argument() 参数设置
- 4.参考
1.介绍
(一)argparse 模块是 Python 内置的用于命令项选项与参数解析的模块,其用主要在两个方面:
- 一方面在python文件中可以将算法参数集中放到一起,对参数进行调整时能够找到文件中参数集中的位置,(主要是调整默认参数);
- 另一方面在利用python终端进行调用时,不想进入python文件内部对默认参数调整,可以先查看文件参数的使用,然后在终端进行指定修改,然后传递参数进入python文件内部,对其对应参数进行设置;
(二)与argparse在终端设置参数然后传递进入python文件内部相同功能的还有Python内置:sys.argv,但是与argparse传递参数时需要指定参数名,而sys.argv则按照终端参数的顺序传入到sys.argv列表,在python内部则根据列表顺序进行调用。
2.基本使用
argparse定义四个步骤
- 导入argparse包 ——import argparse
- 创建一个命令行解析器对象 ——创建 ArgumentParser() 对象
- 给解析器添加命令行参数 ——调用add_argument() 方法添加参数
- 解析命令行的参数 ——使用 parse_args() 解析添加的参数
(1)代码示例如下python文件:argparser.py
# 1.导入argparse库
import argparse# 2. 定义命令行解析器对象
parser = argparse.ArgumentParser(description='Use of argparse')# 3. 添加命令行参数
parser.add_argument('--model',type=str,default='model name',help='input model')
parser.add_argument('--lr',type=float,default=0.01,help='learning rate')# 4. 从命令行中结构化解析参数
args = parser.parse_args()# 5.输出或调用解析参数
print(args)# 打印全部参数信息
print('show {} {}'.format(args.model, args.lr))
(2)终端查看使用:
python argparser.py -h #可以查看设置的参数使用说明

(3)终端运行时修改默认参数:
python argparser.py --model resnet50
(4) sys.argv的命令行参数
sys.argv的使用
- 当Python脚本被执行时,命令行参数被传递给脚本,并以列表形式存储在 sys.argv 列表中,通俗将就是:将命令终端python文件名+终端调用参数名加入到sys.argv之中,这样可以将终端输入的参数传递到python文件内部中
- 在argparser.py文件内部可以设置parm1=sys.argv[0],即设置的param1的变量值为终端传递的argparser.py的路径名
- sys.argv在少量参数时使用,在文件含有大量参数时推荐使用argparse
python python argparser.py --model resnet50 #就会把argparser.py --model resnet50传递进入sys.argv,形成如下列表

sys.argv是一个列表,在python内部,sys.argv[0]表示python文件名,sys.argv[1]=‘–model’,sys.argv[2]=‘resnet50’
3.add_argument() 参数设置
| 名称 | 说明 | 备注 |
|---|---|---|
| name | 命令行参数的名字 | 默认是选项字符串去掉前缀后的结果 |
| action | 参数在命令行中出现时应该采取的动作 | 默认store_true/store_false |
| default | 指定参数的默认值 | 无 |
| type | 指定命令行参数应该被转换成的类型 | 无 |
| choices | 指定参数可接受的值的一个容器 | 只能从可接受值里取值 |
| required | 指定参数是否必须提供 | 无 |
| help | 指定参数的帮助信息 | 无 |
"""1.基本用法:参数名称model,参数输入值被转化为字符串,required表示参数为必须值(不为可选),
default表示默认为resnet,help为该参数的帮助信息"""
parser.add_argument(name='--model',type=str,required=True,default='resnet',help='input model name')"""2.action的用法"""
parser.add_argument('--verbose', action='store_true', help='increase output verbosity')
"""运行程序并加上--verbose选项(例如python script.py --verbose),args.verbose的值将会是True""""""3.choices"""
parser.add_argument('--food', choices=['apple', 'banana', 'cherry'], help='choose a fruit')
"""--food选项指定一个不是'apple'、'banana'或'cherry'的值(例如python script.py --food orange),argparse将会显示一个错误消息,说明提供的值不是有效的选择。"""
4.参考
(1)参考教程:argparse使用
相关文章:
【Python实用标准库】argparser使用教程
argparser使用教程 1.介绍2.基本使用3.add_argument() 参数设置4.参考 1.介绍 (一)argparse 模块是 Python 内置的用于命令项选项与参数解析的模块,其用主要在两个方面: 一方面在python文件中可以将算法参数集中放到一起&#x…...
伦敦金与纸黄金有什么区别?怎么选?
伦敦金与纸黄金都是与黄金相关的投资品种,近期黄金市场的上涨吸引了投资者的关注,那投资者想开户入场成为黄金投资者应该选择纸黄金还是伦敦金呢?两者有何区别呢?下面我们就来讨论一下。 伦敦金是一种起源于伦敦的标准化黄金交易合…...
化工企业能源在线监测管理系统,智能节能助力生产
化工企业能源消耗量极大,其节能的空间也相对较大,所以需要控制能耗强度,保持更高的能源利用率。 化工企业能源消耗现状 1、能源管理方面 计量能源消耗时,计量器具存在问题,未能对能耗情况实施完全计量,有…...
C/C++ 一些使用网站收集...
C/C 标准 各种语言协议标准文档 open-std.org 网站 C语言标准文档 open-std.org C基金会网站 C/C 标准库网站 c/c 标准库 cplusplus.com 网站 c/c标准库 cppreference.com 网站 C Core Guidelines【isocpp.org】 C/C 发展 C现有状态及未来规划【isocpp.org】...
2024可以搜索夸克网盘的方法
截止2024可以搜索夸克网盘的方法 6miu盘搜 6miu盘搜是一个强大的网盘搜索工具,它汇集了多个网盘平台的资源,包括百度网盘、163网盘、金山快盘等,可以帮助用户快速找到所需的资料。6miu盘搜的一个显著特点是它的资源更新速度快,可以搜索到最新的资源。此外,6miu盘搜的界面清爽…...
2024年最新阿里云服务器价格表_CPU内存+磁盘+带宽价格
2024年阿里云服务器租用费用,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元,ECS u1服务器2核4G5M固定带宽199元一年,2核4G4M带宽轻量服务器一年165元12个月,2核4G服务…...
300.【华为OD机试】跳房子I(时间字符串排序—JavaPythonC++JS实现)
本文收录于专栏:算法之翼 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目二.解题思路三.题解代码Python题解代码JAVA题解代码C/C++题解代码JS题解代码四.代码讲解(Ja…...
linux ln Linux 系统中用于创建链接(link)的命令
linux 命令基础汇总 命令&基础描述地址linux curl命令行直接发送 http 请求Linux curl 类似 postman 直接发送 get/post 请求linux ln创建链接(link)的命令创建链接(link)的命令linux linklinux 软链接介绍linux 软链接介绍l…...
mysql按照查询条件进行排序和统计一个字段中每个不同数值出现的次数
1.比如学生表 如何显示查询结果的顺序根据放置的顺序查询 <select id"selectNames" resultType"Student">select * from student_table where 11<if test"studentList! null">and name in<foreach item"item" ind…...
深度学习基础知识
本文内容来自https://zhuanlan.zhihu.com/p/106763782 此文章是用于学习上述链接,方便自己理解的笔记 1.深度学习的网络结构 深度学习是神经网络的一种特殊形式,典型的神经网络如下图所示。 神经元:表示输入、中间数值、输出数值点。例如&…...
UE4_旋转节点总结一
一、Roll、Pitch、Yaw Roll 围绕X轴旋转 飞机的翻滚角 Pitch 围绕Y轴旋转 飞机的俯仰角 Yaw 围绕Z轴旋转 飞机的航向角 二、Get Forward Vector理解 测试: 运行: 三、Get Actor Rotation理解 运行效果: 拆分旋转体测试一&a…...
Dockerfile将jar部署成docker容器
将jar包copy到linux,新建Dockerfile文件 -rw-r--r-- 1 root root 52209844 Mar 25 22:55 data-sharing-0.0.1-SNAPSHOT.jar -rwxrwxrwx 1 root root 227 Mar 25 22:57 Dockerfile [rootlocalhost mnt]# pwd /mntDockerfile内容 # 指定基础镜像 FROM java:8-a…...
Android14音频进阶:AudioFlinger向HAL输出数据过程(六十四)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…...
docker构建镜像命令
编写dockerfile文件 例子1; FROM oraclelinux:7-slim ENV release19 ENV update13 RUN curl -o /etc/yum.repos.d/public-yum-ol7.repo https://yum.oracle.com/public-yum-ol7.repo && \yum-config-manager --enable ol7_oracle_instantclient && \yum in…...
每日一题——LeetCode1720.解码异或后的数组
方法一 异或运算的性质 encoded[i−1]arr[i−1]⊕arr[i] 在等式两边同时异或arr[i−1] 由于: 一个数异或它自己,结果总是0。 0异或任何数,结果都是那个数本身。 所以等式可以转化为: arr[i]arr[i−1]⊕encoded[i−1] 由于 a…...
Day47:WEB攻防-PHP应用文件上传函数缺陷条件竞争二次渲染黑白名单JS绕过
目录 文件上传与测试环境安装 1、前端 JS 2、.htaccess(apache独有的配置文件) 3、MIME类型 4、文件头判断 5、黑名单-过滤不严 6、黑名单-过滤不严 7、低版本GET-%00截断 8、低版本POST-%00截断 9、黑名单-过滤不严 10、逻辑不严-条件竞争 11、二次渲染 12、函数…...
【Android】美团组件化路由框架WMRouter源码解析
前言 Android无论App开发还是SDK开发,都绕不开组件化,组件化要解决的最大的问题就是组件之间的通信,即路由框架。国内使用最多的两个路由框架一个是阿里的ARouter,另一个是美团的WMRouter。这两个路由框架功能都很强大࿰…...
python知识点总结(九)
python知识点总结九 1、TCP中socket的实现代码实现TCP协议a、服务端b、客户端: 2、写装饰器,限制函数被执行的频率,如10秒一次3、请实现一个装饰器,通过一次调用函数重复执行5次4、写一个登录装饰器对一下函数进行装饰,…...
浅谈Linux中的软锁定(soft lockup)和硬件监视器(watchdog)
目录 1. 问题所示2. 基本知识3. 进阶知识 1. 问题所示 跑深度学习的时候遇到卡顿卡机 hostname kernel:watchdog BUG:soft lockup - CPU#16 stuck for 130s![P2PMain-72:4030570]界面如下所示: 大概意思是: watchdog_thresh参数是硬件监视器的超时阈值…...
数据库的四个特性?MySQL是如何实现的?
首先MySQL中,数据库的四个特性分为: 原子性一致性隔离性持久性 也就是我们常说的ACID。 那么这四个特性数据库是如何实现的呢? 持久性---> redo log: redo log(重做日志): redolog本身是…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
