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 socket网络编程步骤详解(socket套接字使用)
Dec 06 Python
python显示天气预报
Mar 02 Python
python通过scapy获取局域网所有主机mac地址示例
May 04 Python
Python 将pdf转成图片的方法
Apr 23 Python
Python使用Phantomjs截屏网页的方法
May 17 Python
解决python3 pika之连接断开的问题
Dec 18 Python
Python实现的合并两个有序数组算法示例
Mar 04 Python
python实现门限回归方式
Feb 29 Python
在Python IDLE 下调用anaconda中的库教程
Mar 09 Python
Python实现定时监测网站运行状态的示例代码
Sep 30 Python
python GUI计算器的实现
Oct 09 Python
python中的yield from语法快速学习
Nov 06 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
isset和empty的区别
2007/01/15 PHP
php 邮件发送问题解决
2014/03/22 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
php清除和销毁session的方法分析
2015/03/19 PHP
PHP学习记录之数组函数
2018/06/01 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
2019/08/12 PHP
js动态设置鼠标事件示例代码
2013/10/30 Javascript
javascript实现2048游戏示例
2014/05/04 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
2015/02/13 Javascript
jquery实现动态改变div宽度和高度
2015/05/08 Javascript
浅谈javascript中的数据类型转换
2016/12/27 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
使用webpack打包后的vue项目如何正确运行(express)
2018/10/26 Javascript
详解如何在JS代码中消灭for循环
2019/12/11 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
基于JavaScript实现表格隔行换色
2020/05/08 Javascript
vue3+typescript实现图片懒加载插件
2020/10/26 Javascript
three.js中多线程的使用及性能测试详解
2021/01/07 Javascript
[05:40]DOTA2荣耀之路6:Wings最后进攻
2018/05/30 DOTA
[00:38]TI珍贵瞬间系列(二):笑
2020/08/26 DOTA
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
在Python的Flask框架中验证注册用户的Email的方法
2015/09/02 Python
Python读取word文本操作详解
2018/01/22 Python
python实现Flappy Bird源码
2018/12/24 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
python plt可视化——打印特殊符号和制作图例代码
2020/04/17 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
django数据模型中null和blank的区别说明
2020/09/02 Python
CSS3 分类菜单效果
2019/05/27 HTML / CSS
群众路线个人剖析材料及整改措施
2014/11/04 职场文书
部门2014年度工作总结
2014/11/12 职场文书
环保证明
2015/06/23 职场文书
优秀员工演讲稿
2019/06/21 职场文书
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL
Python开发五子棋小游戏
2022/05/02 Python