python之argparse 模块
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之argparse 模块相关的知识,希望对你有一定的参考价值。
参考技术Aargparse 模块主要用于处理 Python 命令行参数和选项,程序定义好所需参数后,该模块会通过 sys.argv 解析出那些参数;除此之外,argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。使用 argparse 模块,我们可以轻松的编写出用户友好的命令行接口。
我们先来看一个简单示例:
文件名为 test.py,在控制输入命令:python test.py --help,执行结果:
通过上面的执行结果,我们可以看出 Python 的可选参数包括:--help 和其简写 -h,Python 使用 - 来指定短参数,使用 -- 来指定长参数 ,我们执行一下 python test.py -h,执行结果:
如果使用未定义的参数会报错,如:执行命令 python test.py -a,执行结果:
接下来我们看一下如何自定义参数,因为上面示例中 ArgumentParser() 和 parse_args() 函数,我们还没有详细说,所以这里我们也具体看一下:
这个方法是用来创建解析器对象的,看一下方法中每一个参数的含义:
parse_args(args=None, namespace=None)
用来解析参数,看一下参数说明:
add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
定义单个的命令行参数应当如何解析,看一下参数说明:
下面我们通过具体示例看一下:
先在控制台执行命令 python test.py -h,执行结果:
我们可以看到参数已经添加进来了,接着执行命令 python test.py -n Jhon 或 python test.py --name Jhon,执行结果:
从结果可以看出我们已经获取了控制台中输入的参数值了。
参考:
https://docs.python.org/zh-cn/3/library/argparse.html
Python的argparse模块
Python的argparse模块
0.介绍
argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块。argparse模块的作用是用于解析命令行参数。
我们很多时候,需要用到解析命令行参数的程序。
1.使用步骤
我们常常可以把argparse的使用简化成下面四个步骤
1:import argparse
2:parser = argparse.ArgumentParser()
3:parser.add_argument()
4:parser.parse_args()
上面四个步骤解释如下:首先导入该模块;然后创建一个解析对象;然后向该对象中添加你要关注的命令行参数和选项,每一个add_argument方法对应一个你要关注的参数或选项;最后调用parse_args()方法进行解析;解析成功之后即可使用。
2.示例
示例a
下面我们通过一个例子来进行讲解说明
我们可以看到上面的第二个步骤,parser = argparse.ArgumentParser()
它的作用就是:当调用parser.print_help()或者运行程序时由于参数不正确(此时python解释器其实也是调用了pring_help()方法)时,会打印这些描述信息,一般只需要传递description参数。
下面会有例子输出,首先给出代码:
# -*- coding: UTF-8 -*-
import argparse # 步骤一
def parse_args():
"""
:return:进行参数的解析
"""
description = "you should add those parameter" # 步骤二
parser = argparse.ArgumentParser(
description=description) # 这些参数都有默认值,当调用parser.print_help()或者运行程序时由于参数不正确(此时python解释器其实也是调用了pring_help()方法)时,
# 会打印这些描述信息,一般只需要传递description参数,如上。
help = "The path of address"
parser.add_argument('--addresses', help=help) # 步骤三,后面的help是我的描述
args = parser.parse_args() # 步骤四
return args
if __name__ == '__main__':
args = parse_args()
print(args.addresses,type(args.addresses))
示例b
# 解析命令行的参数
def parse_args():
"""Parse input arguments."""
# -h --help 帮助的描述
parser = argparse.ArgumentParser(description='Tensorflow Faster R-CNN demo')
"""
可选参数 -net(指定网络) dest指定 args用来访问的参数名 args.demo_net
choice 允许的参数值
"""
parser.add_argument('--net', dest='demo_net', help='Network to use [vgg16 res101]',
choices=NETS.keys(), default='vgg16')
"""
可选参数 数据集
"""
parser.add_argument('--dataset', dest='dataset', help='Trained dataset [pascal_voc pascal_voc_0712]',
choices=DATASETS.keys(), default='pascal_voc')
# 解析
args = parser.parse_args()
return args
3.参考文章
基本使用 https://zhuanlan.zhihu.com/p/28871131
参数的使用 https://www.jianshu.com/p/a41fbd4919f8
以上是关于python之argparse 模块的主要内容,如果未能解决你的问题,请参考以下文章