argparse模块

Posted 去做点事情

tags:

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

模块argparse是python标准库中推荐的命令行解析模块

简明使用步骤:

1:import argparse                  首先导入该模块

2:parser = argparse.ArgumentParser()      然后创建一个解析对象

3:parser.add_argument()              然后向该对象中添加你要关注的命令行参数和选项,每一个add_argument方法对应一个你要关注的参数或选项

4:parser.parse_args()               最后调用parse_args()方法进行解析,解析成功之后即可使用

以下是fast-rcnn代码中train_net的使用:

def parse_args():
    """
    Parse input arguments
    """
    parser = argparse.ArgumentParser(description=\'Train a Fast R-CNN network\')
    parser.add_argument(\'--gpu\', dest=\'gpu_id\',
                        help=\'GPU device id to use [0]\',
                        default=0, type=int)
    parser.add_argument(\'--solver\', dest=\'solver\',
                        help=\'solver prototxt\',
                        default=None, type=str)
    parser.add_argument(\'--iters\', dest=\'max_iters\',
                        help=\'number of iterations to train\',
                        default=40000, type=int)
    parser.add_argument(\'--weights\', dest=\'pretrained_model\',
                        help=\'initialize with pretrained model weights\',
                        default=None, type=str)
    parser.add_argument(\'--cfg\', dest=\'cfg_file\',
                        help=\'optional config file\',
                        default=None, type=str)
    parser.add_argument(\'--imdb\', dest=\'imdb_name\',
                        help=\'dataset to train on\',
                        default=\'voc_2007_trainval\', type=str)
    parser.add_argument(\'--rand\', dest=\'randomize\',
                        help=\'randomize (do not use a fixed seed)\',
                        action=\'store_true\')
    parser.add_argument(\'--set\', dest=\'set_cfgs\',
                        help=\'set config keys\', default=None,
                        nargs=argparse.REMAINDER)

    if len(sys.argv) == 1:
        parser.print_help()
        sys.exit(1)

    args = parser.parse_args()
    return args

这是没加任何参数直接输入的情况:

这和输入python train_net.py -h是一样的效果,因为原代码中有这样一段代码:

if len(sys.argv) == 1:
        parser.print_help()
        sys.exit(1)

 

以上是关于argparse模块的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 argparse 模块?

复用代码Python接收命令行参数:argparse模块

处理 argparse 冲突

Python模块之argparse

如何将 optparse() 代码升级为 argparse() 代码

Python 杂记:argparse 模块