Python的argparse模块

Posted Harris-H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的Argparse模块是什么?(未完)

python之argparse 模块

python学习之argparse模块

Python的argparse模块

Python的argparse模块