Python Parser的用法

一、介绍

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的用法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题

    有的bug,莫名其妙就好了- python3.9 报错 "AttributeError: 'HTMLParser' object has no attribute 'unescape'" 异常分析解决. 一.问题描述 安装 python3.9 版本后,pycharm 中切换 python3.9 版本,创建虚拟环境报错:"AttributeError: 'HTMLParser' object has no attribute 'unescape'". Executed

  • python命令行参数解析OptionParser类用法实例

    本文实例讲述了python命令行参数解析OptionParser类的用法,分享给大家供大家参考. 具体代码如下: from optparse import OptionParser parser = OptionParser(usage="usage:%prog [optinos] filepath") parser.add_option("-t", "--timeout", action = "store", type =

  • Python ConfigParser模块的使用示例

    前言 在做项目的时候一些配置文件都会写在settings配置文件中,今天在研究"州的先生"开源文档写作系统-MrDoc的时候,发现部分配置文件写在config.ini中,并利用configparser进行相关配置文件的读取及修改. 一.ConfigParser模块简介 该模块适用于配置文件的格式与windows ini文件类似,是用来读取配置文件的包.配置文件的格式如下:中括号"[ ]"内包含的为section.section 下面为类似于key-value 的配置

  • Python3中configparser模块读写ini文件并解析配置的用法详解

    Python3中configparser模块简介 configparser 是 Pyhton 标准库中用来解析配置文件的模块,并且内置方法和字典非常接近.Python2.x 中名为 ConfigParser,3.x 已更名小写,并加入了一些新功能. 配置文件的格式如下: [DEFAULT] ServerAliveInterval = 45 Compression = yes CompressionLevel = 9 ForwardX11 = yes [bitbucket.org] User =

  • Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析

    本文实例讲述了Python3.5内置模块之shelve模块.xml模块.configparser模块.hashlib.hmac模块用法.分享给大家供大家参考,具体如下: 1.shelve模块 shelve类似于一个key-value数据库,可以很方便的用来保存Python的内存对象,其内部使用pickle来序列化数据, 简单来说,使用者可以将一个列表.字典.或者用户自定义的类实例保存到shelve中,下次需要用的时候直接取出来, 就是一个Python内存对象,不需要像传统数据库一样,先取出数据,

  • Python基于argparse与ConfigParser库进行入参解析与ini parser

    一.入参解析库 argparse 有时候写Python脚本,需要处理入参[-h][-v][-F]...等情况,如果自己来解析的话,会花费很多时间,而且也容易出问题,好在Python有现成的lib可以使用,就是argparse了,下面我们看看如何使用它. import argparse def get_version(): return "0.0.1" def cmd_handler(): args = argparse.ArgumentParser() args.add_argumen

  • python中HTMLParser模块知识点总结

    本章内容,我们主要来讲一下Python内置的HTML解析库HTMLParser模块,基本上也是应用于页面抓取上,假设,我们需要去收集页面上已存在的静态链接,但是页面肯定代码量都非常大,并且页面也很多,这样看来,会比较麻烦,工作量也非常大,这个时候,我们就可以用到htmlparser模块,一起来了解具体使用内容. 安装: npm install htmlparser htmlparser提供构造函数: function Parser(handler) { this._handler = handl

  • Python ArgumentParse的subparser用法说明

    在写一些很小的机器学习项目的时候,我们往往希望training, testing和inference能共用一个入口main,但是不同的功能使用不同的input参数.当然如果三个功能对应三个.py脚本问题也不大,但是毕竟觉得不太优雅.这个时候就需要考虑如何让代码更加简单有条理. 主要是最近在看parser有关的东西,所以看到了一个项目,里面的使用subparser的地方是值得借鉴的,下面附上代码和部分自己的一些见解 def main(): parser = argparse.ArgumentPar

  • Python HTML解析模块HTMLParser用法分析【爬虫工具】

    本文实例讲述了Python HTML解析模块HTMLParser用法.分享给大家供大家参考,具体如下: 简介 先简略介绍一下.实际上,HTMLParser是python用来解析HTML的内置模块.它可以分析出HTML里面的标签.数据等等,是一种处理HTML的简便途径.HTMLParser采用的是一种事件驱动的模式,当HTMLParser找到一个特定的标记时,它会去调用一个用户定义的函数,以此来通知程序处理.它主要的用户回调函数的命名都是以"handle_"开头的,都是HTMLParse

  • Python如何使用ConfigParser读取配置文件

    在项目过程中,需要设置各种IP和端口号信息等,如果每次都在源程序中更改会很麻烦(因为每次都要重启项目重新加载配置信息),因此将需要修改的参数写在配置文件(或者数据库)中,每次只需修改配置文件,就可以实现同样的目的.Python 标准库的 ConfigParser 模块提供一套 API 来读取和操作配置文件.因此在程序开始位置要导入该模块,注意区分是python2还是python3,python3有一些改动 import ConfigParser #python 2.x import config

  • Python中optparser库用法实例详解

    本文研究的主要是Python中optparser库的相关内容,具体如下. 一直以来对optparser不是特别的理解,今天就狠下心,静下心研究了一下这个库.当然了,不敢说理解的很到位,但是足以应付正常的使用了.废话不多说,开始今天的分享吧. 简介 optparse模块主要用来为脚本传递命令参数功能. 引入 在IDE中引入optparser是很方便的. from optparser import OptionParser 初始化 相对而言,初始化需要我们多注意一点点了. 因为我们有两种不同的方式来

随机推荐