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实现简单QQ单用户机器人的方法
Jul 03 Python
使用IPython来操作Docker容器的入门指引
Apr 08 Python
python实现将内容分行输出
Nov 05 Python
python基于隐马尔可夫模型实现中文拼音输入
Apr 01 Python
Python二进制串转换为通用字符串的方法
Jul 23 Python
Python读取mat文件,并保存为pickle格式的方法
Oct 23 Python
Python函数返回不定数量的值方法
Jan 22 Python
python3.4+pycharm 环境安装及使用方法
Jun 13 Python
python过滤中英文标点符号的实例代码
Jul 15 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
Feb 07 Python
Python实现石头剪刀布游戏
Jan 20 Python
python中操作文件的模块的方法总结
Feb 04 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以mysqli方式连接类完整代码实例
2014/07/15 PHP
PHP处理CSV表格文件的常用操作方法总结
2016/07/01 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
实例讲解PHP验证邮箱是否合格
2019/01/28 PHP
Jquery 1.42 checkbox 全选和反选代码
2010/03/27 Javascript
jQuery EasyUI中对表格进行编辑的实现代码
2010/06/10 Javascript
JS对img进行操作(换图片/切图/轮换/停止)
2013/04/17 Javascript
JS实现页面超时后自动跳转到登陆页面
2015/01/19 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
2017/08/22 Javascript
详解Vue SPA项目优化小记
2018/07/03 Javascript
vue-router传递参数的几种方式实例详解
2018/11/13 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
2020/07/22 Javascript
Python操作json数据的一个简单例子
2014/04/17 Python
python使用pil生成图片验证码的方法
2015/05/08 Python
Ruby元编程基础学习笔记整理
2016/07/02 Python
python数据封装json格式数据
2018/03/04 Python
python素数筛选法浅析
2018/03/19 Python
python pickle存储、读取大数据量列表、字典数据的方法
2019/07/07 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
澳大利亚最大的网上油画销售画廊:Direct Art Australia
2018/04/15 全球购物
英语感恩演讲稿
2014/01/14 职场文书
管理学院毕业生自荐信范文
2014/03/10 职场文书
给老婆的保证书范文
2014/04/28 职场文书
省级青年文明号申报材料
2014/05/23 职场文书
单位委托书怎么写
2014/08/02 职场文书
药店促销活动策划方案
2014/08/24 职场文书
2014小学语文教学工作总结
2014/12/17 职场文书
2016护理专业求职自荐书
2016/01/28 职场文书