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 相关文章推荐
python3.3教程之模拟百度登陆代码分享
Jan 16 Python
python回调函数的使用方法
Jan 23 Python
简单介绍Python的Django框架加载模版的方式
Jul 20 Python
Python实现多进程的四种方式
Feb 22 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
Apr 09 Python
python获取微信企业号打卡数据并生成windows计划任务
Apr 30 Python
Django Admin中增加导出Excel功能过程解析
Sep 04 Python
python实现输出一个序列的所有子序列示例
Nov 18 Python
python实现在一个画布上画多个子图
Jan 19 Python
Python面向对象程序设计之继承、多态原理与用法详解
Mar 23 Python
Pycharm如何导入python文件及解决报错问题
May 10 Python
Python学习之路安装pycharm的教程详解
Jun 17 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应用程序来获取Web服务器的状态信息
2006/10/09 PHP
PHP执行linux系统命令的常用函数使用说明
2010/04/27 PHP
PHP下escape解码函数的实现方法
2010/08/08 PHP
PHP 透明水印生成代码
2012/08/27 PHP
php实现telnet功能示例
2014/04/08 PHP
摘自织梦CMS的HTTP文件下载类
2015/08/08 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
2015/12/07 PHP
phpStorm2020 注册码
2020/09/17 PHP
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
一些相见恨晚的 JavaScript 技巧
2010/04/25 Javascript
JavaScript中的this实例分析
2011/04/28 Javascript
jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
2011/10/01 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
JS上传图片前实现图片预览效果的方法
2015/03/02 Javascript
详细分析JavaScript函数定义
2015/07/16 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
JavaScript创建对象的七种方式(推荐)
2017/06/26 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
JS简单获得节点元素的方法示例
2018/02/10 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
vue-cli3 取消eslint校验代码的解决办法
2020/01/16 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
使用grappelli为django admin后台添加模板
2014/11/18 Python
Python标准库之循环器(itertools)介绍
2014/11/25 Python
python实现将汉字转换成汉语拼音的库
2015/05/05 Python
使用python实现http及ftp服务进行数据传输的方法
2018/10/26 Python
python实现梯度下降法
2020/03/24 Python
五分钟学会HTML5的WebSocket协议
2019/11/22 HTML / CSS
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
可靠的数据流传输TCP
2016/03/15 面试题
应届生保险求职信
2013/11/11 职场文书
表彰大会主持词
2014/03/26 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
假如给我三天光明:舟逆水而行,人遇挫而达 
2019/10/29 职场文书
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python