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 del()函数用法
Mar 24 Python
用Python实现一个简单的线程池
Apr 07 Python
打包python 加icon 去掉cmd黑窗口方法
Jun 24 Python
python 中如何获取列表的索引
Jul 02 Python
python基于Selenium的web自动化框架
Jul 14 Python
Python 实用技巧之利用Shell通配符做字符串匹配
Aug 23 Python
Python API自动化框架总结
Nov 12 Python
Python爬虫爬取煎蛋网图片代码实例
Dec 16 Python
通过Python扫描代码关键字并进行预警的实现方法
May 24 Python
解决Keras中CNN输入维度报错问题
Jun 29 Python
JupyterNotebook 输出窗口的显示效果调整实现
Sep 22 Python
python 实现有道翻译功能
Feb 26 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
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
ThinkPHP之M方法实例详解
2014/06/20 PHP
php之Smarty模板使用方法示例详解
2014/07/08 PHP
实例讲解PHP设计模式编程中的简单工厂模式
2016/02/29 PHP
PHP将数据导出Excel表中的实例(投机型)
2017/07/31 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
2020/01/26 PHP
Javascript 继承机制的实现
2009/08/12 Javascript
JavaScript 参数中的数组展开 [译]
2012/09/21 Javascript
jQuery实现动画效果的实例代码
2013/05/07 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
基于vue实现可搜索下拉框定制组件
2020/03/26 Javascript
vue拖拽组件使用方法详解
2018/12/01 Javascript
ES6知识点整理之Proxy的应用实例详解
2019/04/16 Javascript
jQuery实现简易QQ聊天框
2020/02/10 jQuery
JS实现进度条动态加载特效
2020/03/25 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
python 创建一维的0向量实例
2019/12/02 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
详解python中的lambda与sorted函数
2020/09/04 Python
使用Python封装excel操作指南
2021/01/29 Python
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
饿了么订餐官网:外卖、网上订餐
2019/06/28 全球购物
美国在线肉类和海鲜配送:Crowd Cow
2020/10/02 全球购物
有模特经验的简历自我评价
2013/09/19 职场文书
高中毕业自我鉴定
2013/12/13 职场文书
超市后勤自我鉴定
2014/01/17 职场文书
工作自我评价怎么写
2014/01/29 职场文书
员工安全生产责任书
2014/07/22 职场文书
认真学习保证书
2015/02/26 职场文书
党员个人承诺书
2015/04/27 职场文书
乡镇干部学习心得体会
2016/01/23 职场文书
给numpy.array增加维度的超简单方法
2021/06/02 Python
Hive常用日期格式转换语法
2022/06/25 数据库