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中的map、reduce和filter浅析
Apr 26 Python
给Python的Django框架下搭建的BLOG添加RSS功能的教程
Apr 08 Python
详细解读Python中的__init__()方法
May 02 Python
python通过socket查询whois的方法
Jul 18 Python
使用python和Django完成博客数据库的迁移方法
Jan 05 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
Apr 20 Python
如何使用python爬虫爬取要登陆的网站
Jul 12 Python
python实现批量修改服务器密码的方法
Aug 13 Python
Django stark组件使用及原理详解
Aug 22 Python
python爬虫中多线程的使用详解
Sep 23 Python
Python Sphinx使用实例及问题解决
Jan 17 Python
Python爬取YY评级分数并保存数据实现过程解析
Jun 01 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分页显示制作详细讲解
2006/12/05 PHP
php 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
ThinkPHP中自定义错误页面和提示页面实例
2014/11/22 PHP
PHP类相关知识点实例总结
2016/09/28 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
2013/02/26 Javascript
JQuery插件开发示例代码
2013/11/06 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
jQuery中选择器小问题(新人难免遇到)
2014/03/31 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
Javascript设计模式之观察者模式(推荐)
2016/03/29 Javascript
js实现百度搜索提示框
2017/02/05 Javascript
jquery实现静态搜索功能(可输入搜索文字)
2017/03/28 jQuery
解决vue 引入子组件报错的问题
2018/09/06 Javascript
详解Vue Elementui中的Tag与页面其它元素相互交互的两三事
2018/09/25 Javascript
Element Input组件分析小结
2018/10/11 Javascript
vue-router二级导航切换路由及高亮显示的实现方法
2019/07/10 Javascript
mpvue微信小程序的接口请求fly全局拦截代码实例
2019/11/13 Javascript
es6数组之扩展运算符操作实例分析
2020/04/25 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
2020/08/13 Javascript
Python中条件判断语句的简单使用方法
2015/08/21 Python
Django 连接sql server数据库的方法
2018/06/30 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
Django密码系统实现过程详解
2019/07/19 Python
python生成word合同的实例方法
2021/01/12 Python
什么是Smart Navigation?
2016/07/03 面试题
社区优秀志愿者材料
2014/02/02 职场文书
冬季施工防火方案
2014/05/17 职场文书
营销计划书范文
2015/01/17 职场文书
教师节感谢信
2015/01/22 职场文书
《百分数的认识》教学反思
2016/02/19 职场文书
python使用torch随机初始化参数
2022/03/22 Python
mapstruct的用法之qualifiedByName示例详解
2022/04/06 Java/Android