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的Django框架结合jQuery实现AJAX购物车页面
Apr 11 Python
Python科学计算包numpy用法实例详解
Feb 08 Python
Python中判断输入是否为数字的实现代码
May 26 Python
Python3用tkinter和PIL实现看图工具
Jun 21 Python
pycharm在调试python时执行其他语句的方法
Nov 29 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
Jan 15 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
Jan 29 Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 Python
使用Fabric自动化部署Django项目的实现
Sep 27 Python
python安装scipy的步骤解析
Sep 28 Python
Django-rest-framework中过滤器的定制实例
Apr 01 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
Jun 03 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
风格模板初级不完全修改教程
2006/10/09 PHP
一步一步学习PHP(4) php 函数 补充2
2010/02/15 PHP
PHP原生模板引擎 最简单的模板引擎
2012/04/25 PHP
表格展示无限级分类(PHP版)
2012/08/21 PHP
推荐25款php中非常有用的类库
2014/09/29 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
PHP CURL使用详解
2019/03/21 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
javascript 学习笔记(一)DOM基本操作
2011/04/08 Javascript
url参数中有+、空格、=、%、&amp;、#等特殊符号的问题解决
2013/05/15 Javascript
js使用递归解析xml
2014/12/12 Javascript
jQuery语法小结(超实用)
2015/12/31 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
JS图片预加载插件详解
2017/06/21 Javascript
bmob js-sdk 在vue中的使用教程
2018/01/21 Javascript
jQuery动态操作表单示例【基于table表格】
2018/12/06 jQuery
[01:07:15]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第二场 1月25日
2021/03/11 DOTA
使用Python从零开始撸一个区块链
2018/03/14 Python
利用Python将数值型特征进行离散化操作的方法
2018/11/06 Python
wxpython实现按钮切换界面的方法
2019/11/19 Python
pycharm激活码快速激活及使用步骤
2020/03/12 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
Java面试题:Java类的Main方法如果是Private将会怎么样
2016/08/18 面试题
大二自我鉴定范文
2013/10/05 职场文书
应用心理学个人求职信范文
2013/12/11 职场文书
2014教师党员自我评议总结
2014/09/19 职场文书
公司给客户的感谢信
2015/01/23 职场文书
社区国庆节活动总结
2015/03/23 职场文书
党小组鉴定意见
2015/06/02 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书
Win11查看设备管理器
2022/04/19 数码科技
python数字图像处理之图像的批量处理
2022/06/28 Python