Python Parser的用法


Posted in Python onMay 12, 2021

一、介绍

argparse 模块可以让人轻松编写用户友好的命令行接口。程序定义它需要的参数,然后 argparse 将弄清如何从 sys.argv 解析出那些参数。 argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。

二、示例

import argparse

parser = argparse.ArgumentParser(description='test')

parser.add_argument('--sparse', action='store_true', default=False, help='GAT with sparse version or not.')
'''
_StoreTrueAction(option_strings=['--sparse'], dest='sparse', nargs=0, const=True, default=False, type=None, choices=None, help='GAT with sparse version or not.', metavar=None)
'''

parser.add_argument('--seed', type=int, default=72, help='Random seed.')
'''
_StoreAction(option_strings=['--seed'], dest='seed', nargs=None, const=None, default=72, type=<class 'int'>, choices=None, help='Random seed.', metavar=None)
'''

parser.add_argument('--epochs', type=int, default=10000, help='Number of epochs to train.')
'''
_StoreAction(option_strings=['--epochs'], dest='epochs', nargs=None, const=None, default=10000, type=<class 'int'>, choices=None, help='Number of epochs to train.', metavar=None)
'''

args = parser.parse_args()
print(args.sparse)
print(args.seed)
print(args.epochs)
'''
False
72
10000
'''

三、步骤

1. 实例化ArgumentParser

# 实例化
# 创建一个 ArgumentParser 对象
# ArgumentParser 对象包含将命令行解析成 Python 数据类型所需的全部信息。
parser = argparse.ArgumentParser(description = 'test')

描述description

大多数对 ArgumentParser 构造方法的调用都会使用 description= 关键字参数。这个参数简要描述这个程度做什么以及怎么做。在帮助消息中,这个描述会显示在命令行用法字符串和各种参数的帮助消息之间。

2. 使用add_argument函数添加参数

这些调用指定 ArgumentParser 如何获取命令行字符串并将其转换为对象。

parser.add_argument('--sparse', action='store_true', default=False, help='GAT with sparse version or not.')
parser.add_argument('--seed', type=int, default=72, help='Random seed.')
parser.add_argument('--epochs', type=int, default=10000, help='Number of epochs to train.')

add_argument() 方法定义如何解析命令行参数

ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

每个参数解释如下:

name or flags — 选项字符串的名字或者列表,例如 foo 或者 -f, --foo。

action— 命令行遇到参数时的动作,默认值是 store。

store_const—表示赋值为const;

append—将遇到的值存储成列表,也就是如果参数重复则会保存多个值;

append_const—将参数规范中定义的一个值保存到一个列表;

count—存储遇到的次数;此外,也可以继承 argparse.Action 自定义参数解析;

nargs — 应该读取的命令行参数个数,可以是具体的数字,或者是?号,当不指定值时对于 Positional argument 使用 default—对于 Optional argument 使用 const;或者是 * 号,表示 0 或多个参数;或者是 + 号表示 1 或多个参数。

const - actionnargs 所需要的常量值。

default— 不指定参数时的默认值。

type — 命令行参数应该被转换成的类型。

choices — 参数可允许的值的一个容器。

required — 可选参数是否可以省略 (仅针对可选参数)。

help — 参数的帮助信息,当指定为 argparse.SUPPRESS 时表示不显示该参数的帮助信息.

metavar — 在 usage 说明中的参数名称,对于必选参数默认就是参数名称,对于可选参数默认是全大写的参数名称.

dest — 解析后的参数名称,默认情况下,对于可选参数选取最长的名称,中划线转换为下划线.

四、使用parse_args解析参数

ArgumentParser 通过 parse_args() 方法解析参数。它将检查命令行,把每个参数转换为适当的类型然后调用相应的操作。在大多数情况下,这意味着一个简单的 Namespace 对象将从命令行解析出的属性构建:

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

print (args.echo)

到此这篇关于Python Parser的用法的文章就介绍到这了,更多相关Parser的用法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现把数字转换成中文
Jun 29 Python
Python3 操作符重载方法示例
Nov 23 Python
python excel使用xlutils类库实现追加写功能的方法
May 02 Python
详解Python 正则表达式模块
Nov 05 Python
python+opencv实现高斯平滑滤波
Jul 21 Python
Python求一批字符串的最长公共前缀算法示例
Mar 02 Python
python getpass实现密文实例详解
Sep 24 Python
wxPython+Matplotlib绘制折线图表
Nov 19 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
May 17 Python
python爬虫scrapy基本使用超详细教程
Feb 20 Python
教你如何用python开发一款数字推盘小游戏
Apr 14 Python
python图像处理 PIL Image操作实例
Apr 09 Python
pytorch MSELoss计算平均的实现方法
May 12 #Python
Django如何创作一个简单的最小程序
May 12 #Python
Pytorch中TensorBoard及torchsummary的使用详解
pytorch 一行代码查看网络参数总量的实现
May 12 #Python
pytorch查看网络参数显存占用量等操作
May 12 #Python
Python入门之使用pandas分析excel数据
May 12 #Python
将Python代码打包成.exe可执行文件的完整步骤
You might like
二招解决php乱码问题
2012/03/25 PHP
PHP中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
PDO版本问题 Invalid parameter number: no parameters were bound
2013/01/06 PHP
PHP 使用MySQL管理Session的回调函数详解
2013/06/21 PHP
php修改NetBeans默认字体的大小
2013/07/02 PHP
php统计文章排行示例
2014/03/04 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
Thinkphp无限级分类代码
2015/11/11 PHP
在页面上点击任一链接时触发一个事件的代码
2007/04/07 Javascript
javascript date格式化示例
2013/09/25 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
js获取html的span标签的值方法(超简单)
2016/07/26 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
2016/08/06 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
微信小程序之仿微信漂流瓶实例
2016/12/09 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
jsonp跨域请求详解
2017/07/13 Javascript
信息滚动效果的实例讲解
2017/09/18 Javascript
利用vue + element实现表格分页和前端搜索的方法
2017/12/25 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
jQuery 查找元素操作实例小结
2019/10/02 jQuery
JavaScript ES6 Class类实现原理详解
2020/05/08 Javascript
初学Python实用技巧两则
2014/08/29 Python
Python中的类学习笔记
2014/09/23 Python
举例说明类变量和实例变量的区别
2016/06/30 面试题
高级护理专业毕业生推荐信
2013/12/25 职场文书
年会活动策划方案
2014/01/23 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
乡镇群众路线教育实践活动整改措施
2014/10/04 职场文书
公安机关纪律作风整顿个人剖析材料材料
2014/10/10 职场文书
教师年终个人总结
2015/02/11 职场文书
结婚司仪主持词
2015/06/29 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
廉政党课工作报告案例
2019/06/21 职场文书
SQL写法--行行比较
2021/08/23 SQL Server
React四级菜单的实现
2022/04/08 Javascript