python之argparse 模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之argparse 模块相关的知识,希望对你有一定的参考价值。

参考技术A

argparse 模块主要用于处理 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 模块的主要内容,如果未能解决你的问题,请参考以下文章

Python 杂记:argparse 模块

在 python 中调试 argpars

Python模块之argparse

python之argparse 模块

Python命令行参数处理之argparse模块

python之定义参数模块argparse的基本使用