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字符串连接方式汇总
Aug 21 Python
python 迭代器和iter()函数详解及实例
Mar 21 Python
详解python上传文件和字符到PHP服务器
Nov 24 Python
基于python list对象中嵌套元组使用sort时的排序方法
Apr 18 Python
python读写LMDB文件的方法
Jul 02 Python
python使用pygame框架实现推箱子游戏
Nov 20 Python
使用python获取(宜宾市地震信息)地震信息
Jun 20 Python
python脚本开机自启的实现方法
Jun 28 Python
Pycharm 2019 破解激活方法图文详解
Oct 11 Python
Python包和模块的分发详细介绍
Jun 19 Python
用sleep间隔进行python反爬虫的实例讲解
Nov 30 Python
解决pycharm下载库时出现Failed to install package的问题
Sep 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的特殊设置
2006/10/09 PHP
php join函数应用
2011/05/04 PHP
Memcached常用命令以及使用说明详解
2013/06/27 PHP
Joomla调用系统自带编辑器的实现方法
2016/05/05 PHP
YII2框架中日志的配置与使用方法实例分析
2020/03/18 PHP
详细分析PHP 命名空间(namespace)
2020/06/30 PHP
HR vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
JavaScript 字符编码规则
2009/05/04 Javascript
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
2013/01/16 Javascript
JS中Iframe之间传值的方法
2013/03/11 Javascript
JS 各种网页尺寸判断实例方法
2013/04/18 Javascript
javascript的内存管理详解
2013/08/07 Javascript
SeaJS入门教程系列之完整示例(三)
2014/03/03 Javascript
JS中call/apply、arguments、undefined/null方法详解
2016/02/15 Javascript
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
Express使用html模板的详细代码
2017/09/18 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
微信小程序中时间戳和日期的相互转换问题
2018/07/09 Javascript
JavaScript如何把两个数组对象合并过程解析
2019/10/10 Javascript
vue-列表下详情的展开与折叠案例
2020/07/28 Javascript
python根据文件大小打log日志
2014/10/09 Python
python黑魔法之编码转换
2016/01/25 Python
浅谈Django学习migrate和makemigrations的差别
2018/01/18 Python
Python+request+unittest实现接口测试框架集成实例
2018/03/16 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
2019/02/16 Python
在pycharm中debug 实时查看数据操作(交互式)
2020/06/09 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
2020/11/28 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
介绍一下RMI的基本概念
2016/12/17 面试题
说明书格式及范文
2014/05/07 职场文书
查摆问题自我剖析材料
2014/08/18 职场文书
城管执法人员纪律作风整顿思想汇报
2014/09/13 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript