argparse简介
一、argparse简介
argparse 模块是 Python 内置的用于命令项选项与参数解析的模块,argparse 模块可以让人轻松编写用户友好的命令行接口,能够帮助程序员为模型定义参数。
- argparse定义四个步骤
- 导入argparse包 ——import argparse
- 创建一个命令行解析器对象 ——创建 ArgumentParser() 对象
- 给解析器添加命令行参数 ——调用add_argument() 方法添加参数
- 解析命令行的参数 ——使用 parse_args() 解析添加的参数
2. 举个栗子
# 导入库
import argparse# 1. 定义命令行解析器对象
parser = argparse.ArgumentParser(description='Demo of argparse')# 2. 添加命令行参数
parser.add_argument('--epochs', type=int, default=30)
parser.add_argument('--batch', type=int, default=4)# 3. 从命令行中结构化解析参数
args = parser.parse_args()
print(args)
epochs = args.epochs
batch = args.batch
print('show {} {}'.format(epochs, batch))
用大白话对上面代码进行解读,首先我们导入argparse这个包,然后包中的ArgumentParser类生成一个parser对象(其中的description对参数解析器的作用进行描述),当我们在命令行显示帮助信息的时候会看到description描述的信息。例如:python try.py -h
接着我们通过对象的add_argument函数来增加参数。这里我们增加了训练中常用的epochs和batch参数,最后采用对象的parse_args获取解析的参数。打印结果如下图所示:
或者执行命令python fun_test.py --epochs 30 --batch 4
二、参数详解
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参数选项参数的名称或标签,例如 epochs 或者 -e, --epochs。Flag参数不需要指定参数值,只需要带有参数名即可。
- action: 命令行遇到flags参数时的动作。有两个常见的动作,store_true:设定flag参数为true;store_false:设定flag参数为False。注意:如果直接运行程序,默认不读取该变量,要使用必须要进行传参,例如:python try.py --epochs
- 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()
在脚本中,通常 parse_args() 会被不带参数调用,而 ArgumentParser 将自动从 sys.argv 中确定命令行参数。
argparse简介相关推荐
- python argparse 简介
本教程是对于Python标准库中推荐使用的命令行解析模块argparse的简单介绍. PS:还有其他两个模块实现这一功能,getopt(等同于C语言中的getopt())和弃用的optparse.因为 ...
- Py之argparse:Python库之argparse(命令行解析)简介、安装、使用方法之详细攻略
Py之argparse:Python库之argparse(命令行解析)简介.安装.使用方法之详细攻略 导读 python中的命令行解析最简单最原始的方法是使用sys.argv来实现,更高级的可以使用a ...
- java 命令读取参数_如何读取/处理命令行参数?
我原本是C程序员. 我看到了许多花招和"技巧"来阅读许多不同的论点. Python程序员可以通过哪些方式做到这一点? 有关 #1楼 标准库中的规范解决方案是argparse ( d ...
- python数据分析可视化实例-Python数据分析与可视化从入门到精通
(1)没有高深理论,每章都以实例为主,读者参考书中源码运行,就能得到与书中一样的结果.(2)专注于Python数据分析与可视化操作中实际用到的技术.相比大而全的书籍资料,本书能让读者尽快上手,开始项目 ...
- python可视化数据分析-Python数据分析与可视化从入门到精通
(1)没有高深理论,每章都以实例为主,读者参考书中源码运行,就能得到与书中一样的结果.(2)专注于Python数据分析与可视化操作中实际用到的技术.相比大而全的书籍资料,本书能让读者尽快上手,开始项目 ...
- 简介:argparse
一.简介: argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块.argparse模块的作用是用于解析命令行参数,例如python parseTes ...
- python3 命令行参数处理库 argparse、docopt、click、fire 简介
一.前言 在近半年的 Python 命令行旅程中,我们依次学习了 argparse.docopt.click 和 fire 库的特点和用法,逐步了解到 Python 命令行库的设计哲学与演变. 本文作 ...
- python argparse模块_Python argparse模块应用实例解析
这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python ...
- python解析库_Python命令行解析库argparse
原博文 2014-08-13 05:48 − 2.7之后python不再对optparse模块进行扩展,python标准库推荐使用argparse模块对命令行进行解析. 1.example 有一道面试 ...
最新文章
- HTML-CSS-JS-PHP的顺序及相关网址(转)
- 【C 语言】字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序字符串操作 | strncat 函数 )
- 《大话数据结构》样章试读
- 使用bash echo 输出回车转义
- 方法参数泛型_无参数泛型方法反模式
- 让Python输出更漂亮
- python快速比较两个json_Python 比较两个json的方法
- 佳能hdr_多方位升级 佳能发布数码单反相机新品EOS 850D
- 快速JQuery——(第一章)第一个JQuery
- C#实现鼠标进入按键范围后按键自动窗体内位置移动
- java基础(七)--- set
- 《我在大学挺好的》之——选择了计算机专业
- contest3 CF994 div2 ooxxx? oooox? ooooo?
- Uboot pmic调试
- SAMA5D3X-EK 嵌入式linux内核编译启动及通过nfs通过网络启动文件系统及文件系统镜像的制作
- 华为防火墙VRRP双机热备的配置
- 从租售比看中国房价的合理性
- Qt学习经验之quit()、exit()、close()
- 在线压缩转换文件的软件
- android设置加密步长,非稳态计算时Fluent 时间步长如何设置(转载)
热门文章
- DNS域传送漏洞(一)
- hc05与单片机连接图_单片机实例分享,快递追踪器
- 编程干货|普通大学生如何实现经济独立?你不会还在拿着父母给的千把块钱省吃俭用吧!
- 来啦老弟,论如何比较两个时间的先后
- ios12电池测试软件,5款旧iPhone升级iOS12.3.1续航测试:真的有提升
- ES数据库的搭建(包含踩坑记录)
- @JsonFormat注解使用
- selenium【二】—webdriver API
- 【Python Other】一网打尽 Python复制文本文件到剪切板
- c语言中等于号和大于号的优先级,数学优先级