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生成随机MAC地址
Mar 10 Python
11个并不被常用但对开发非常有帮助的Python库
Mar 31 Python
python使用Tesseract库识别验证
Mar 21 Python
Python实用技巧之利用元组代替字典并为元组元素命名
Jul 11 Python
Python找出微信上删除你好友的人脚本写法
Nov 01 Python
python面试题Python2.x和Python3.x的区别
May 28 Python
python三大神器之fabric使用教程
Jun 10 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
Jan 28 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
Mar 24 Python
python对输出的奇数偶数排序实例代码
Dec 04 Python
python 基于selenium实现鼠标拖拽功能
Dec 24 Python
python 批量压缩图片的脚本
Jun 02 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
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
jquery ui对话框实例代码
2013/05/10 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
2013/06/18 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
jQuery针对各类元素操作基础教程
2014/08/29 Javascript
无限树Jquery插件zTree的常用功能特性总结
2014/09/11 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
2015/04/07 Javascript
jQuery中判断对象是否存在的方法汇总
2016/02/24 Javascript
js实时获取窗口大小变化的实例代码
2016/11/18 Javascript
JavaScript实现一个简易的计算器实例代码
2018/05/10 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
你不知道的 TypeScript 高级类型(小结)
2020/08/28 Javascript
[51:17]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
python excel使用xlutils类库实现追加写功能的方法
2018/05/02 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
2019/01/23 Python
Python3查找列表中重复元素的个数的3种方法详解
2020/02/13 Python
python爬虫开发之urllib模块详细使用方法与实例全解
2020/03/09 Python
丝芙兰巴西官方商城:SEPHORA巴西
2016/10/31 全球购物
惠普加拿大在线商店:HP加拿大
2017/09/15 全球购物
亚马逊海外购:亚马逊美国、英国、日本、德国直邮
2021/03/18 全球购物
学校经典推荐信
2013/10/30 职场文书
幼儿园大班新学期寄语
2014/01/18 职场文书
酒鬼酒广告词
2014/03/21 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
工程负责人任命书
2014/06/06 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书
党的群众路线教育实践活动心得体会(医院)
2014/11/03 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
家长对孩子的寄语
2015/02/26 职场文书
python实现手机推送 代码也就10行左右
2022/04/12 Python
带你了解Java中的ForkJoin
2022/04/28 Java/Android
高通2023 年将发布高性能PC处理器
2022/04/29 数码科技