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使用win32com库播放mp3文件的方法
May 30 Python
python实现解数独程序代码
Apr 12 Python
python difflib模块示例讲解
Sep 13 Python
python版微信跳一跳游戏辅助
Jan 11 Python
Selenium定位元素操作示例
Aug 10 Python
python使用Turtle库绘制动态钟表
Nov 19 Python
python多线程同步实例教程
Aug 11 Python
Python Django 页面上展示固定的页码数实现代码
Aug 21 Python
Python configparser模块配置文件过程解析
Mar 03 Python
Anaconda+Pycharm环境下的PyTorch配置方法
Mar 13 Python
Python模拟伯努利试验和二项分布代码实例
May 27 Python
Python进行特征提取的示例代码
Oct 15 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设计模式 DAO(数据访问对象模式)
2011/06/26 PHP
浅析php header 跳转
2013/06/17 PHP
汇总PHPmailer群发Gmail的常见问题
2016/02/24 PHP
php基于curl重写file_get_contents函数实例
2016/11/08 PHP
异步加载script的代码
2011/01/12 Javascript
解析jQuery与其它js(Prototype)库兼容共存
2013/07/04 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
封装获取dom元素的简单实例
2016/07/08 Javascript
jquery+html仿翻页相册功能
2016/12/20 Javascript
jQuery封装animate.css的实例
2018/01/04 jQuery
iView框架问题整理小结
2018/10/16 Javascript
vue项目中实现缓存的最佳方案详解
2019/07/11 Javascript
vue路由守卫,限制前端页面访问权限的例子
2019/11/11 Javascript
VUE项目axios请求头更改Content-Type操作
2020/07/24 Javascript
python常见数制转换实例分析
2015/05/09 Python
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
Python键盘输入转换为列表的实例
2018/06/23 Python
Python 占位符的使用方法详解
2019/07/10 Python
对Django项目中的ORM映射与模糊查询的使用详解
2019/07/18 Python
pygame实现俄罗斯方块游戏(基础篇3)
2019/10/29 Python
Python numpy数组转置与轴变换
2019/11/15 Python
vscode写python时的代码错误提醒和自动格式化的方法
2020/05/07 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
玩具反斗城葡萄牙官方商城:Toys"R"Us葡萄牙
2016/10/21 全球购物
台湾母婴用品限时团购:妈咪爱
2018/08/03 全球购物
餐饮总经理岗位职责
2014/03/07 职场文书
《长相思》听课反思
2014/04/10 职场文书
法律专业求职信
2014/05/24 职场文书
节能减耗标语
2014/06/21 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
颐和园的导游词
2015/01/30 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
消防安全主题班会
2015/08/12 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
Redis+Lua脚本实现计数器接口防刷功能(升级版)
2022/02/12 Redis