首页 > 编程语言 >Python Parser的用法

Python Parser的用法

时间:2022-10-12 12:13:05浏览次数:76  
标签:args help Python Parser argument 用法 default add 参数

------2022年10月12日11:56:29-------

注意,在解析parse中,对于可选参数选取最长的名称,中划线转换为下划线

--------

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)

 

标签:args,help,Python,Parser,argument,用法,default,add,参数
From: https://www.cnblogs.com/chentiao/p/16784069.html

相关文章

  • python 不可变数据类型--字符串
    不可变数据类型:字符串是不可变数据类型,但一些性质类似列表(每个位置都有索引),但因为是不可变数据类型,字符串生成了就不能发生改变(不能str[0]='d'),有些字符串方法‘改变了’,......
  • python中 yaml.dump 对dict dump成yaml文件时,给特定字符串保留(加上)单引号
    以下例子来源于https://www.cnblogs.com/saiminhou/p/13729119.htmlpythonyamldict对str类型加上单引号源数据:dict1={"user_id":23026,"contact":[{"na......
  • 力扣350(java&python)-两个数组的交集 II(简单)
    题目:给你两个整数数组 nums1和nums2,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑......
  • Python的常用库及区别——numpy、pandas、matplotlib、scipy
    1.Numpy  numpy是python科学计算的基础包,好多算法都是基于numpy构建的。其功能有:快速高效的多维数组ndarray用于对数组执行元素及计算以及直接对数组执行数字运......
  • python parser.parse_args action=‘store_true‘ 和 ‘store_false’
    store_true就是存储的值为true(store_false就是存储的值为false),用sh命令触发值的设置:parser.add_argument('-p',action='store_true',default=false)#pythontes......
  • Python基础一
    #变量名是区分大小写的#导入模块儿importrandomfromrandomimport*print('Helloworld!')print(len('HelloWorld'))#str()函数可以传入一个整型值,并求值为它的字符串......
  • 9 月编程语言排行榜:Python 反超 C++,万年不变的前三终于变了
    "IT有得聊”是机械工业出版社旗下IT专业资讯和服务平台,致力于帮助读者在广义的IT领域里,掌握更专业、实用的知识与技能,快速提升职场竞争力。 TIOBE发布了9 月份的编程语......
  • 如何解决python爬虫的ip资源问题
    解决python爬虫的ip资源需求,有以下三种方法:一.采购http代理,api提取此类方法适用于爬虫脚本或软件在本地电脑或服务器终端运行的情况,通过api提取的方式获取海量代理ip,因为ap......
  • PYTHON apdu命令
    A实例化读卡器:pcsc=PcscReader()B获取所有的读卡器列表:readerName=pcsc.get_pcsc_readerlist()readerNameList=readerName.split(';')foriinrange(len(readerN......
  • python高阶函数
    '''defcounter(base):definc(step=1):nonlocalbasebase+=stepreturnbasereturnincfoo=counter(5)foo2=counter(5)print(foo==foo2)'''#sorte......