IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]13.4 argparse--分析命令行选项、参数功能

    caimouse发表于 2016-06-28 08:15:46
    love 0

    本模块主要为了方便实现命令行参数处理,或者分析命令行参数。

    创建命令行参数分析器:

    #python 3.4

    import argparse

     

    parser = argparse.ArgumentParser(description='Process some integers.')

    print(parser)

    结果输出如下:

    ArgumentParser(prog='arg2.py', usage=None, description='Process some integers.', formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=True)

    在这里,设置参数description为描述这个命令行处理对象主要做什么事情。

     

    添加参数到分析器:

    parser.add_argument('integers', metavar='N', type=int, nargs='+',

                         help='an integer for the accumulator')

    parser.add_argument('--sum', dest='accumulate', action='store_const',

                         const=sum, default=max,

                         help='sum the integers (default: find the max)')

    在想往命令行ArgumentParser对象里添加参数,需要使用函数add_argument(),这个函数会把这些参数怎么设置,怎么样运行的方式设置到对象里。后面通过调用函数parse_args()来使用这些参数的值,在这个例子里返回两个属性integers和accumulate,integers是一个包含所有整数的列表,accumulate属性将会是sum()的函数功能,如果输入参数--sum,默认是max()的功能。最后会调用分析函数parse_args(),如下:

    parser.parse_args(['--sum', '7', '-1', '42'])

    在函数parse_args()一般不输入参数,它自动地使用sys.argv参数,实现从脚本里获取命令行的参数。

     

    class argparse.ArgumentParser(prog=None, usage=None, description=None, epilog=None, parents=, []formatter_class=argparse.HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True)

    创建一个ArgumentParser分析对象。

    参数prog是程序的名称,默认是sys.argv[0]。

    参数usage是描述本程程序的使用方法字符串。

    参数description是在参数使用前面显示的字符串。

    参数epilog是在参数使用后面显示的字符串。

    参数parents是那些参数被包括的ArgumentParser列表。

    参数formatter_class是定制的输出帮助类。

    参数prefix_chars是参数前面定义的字符,默认是“-”。

    参数fromfile_prefix_chars是定义命令行参数在文件里的前缀字符。默认是空。

    参数argument_default是所有参数的缺省值。

    参数conflict_handler是 解决冲突的处理策略。

    参数add_help是添加 -h/-help选项给分析器,默认是True。

     

    ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

    定义一个命令行参数。

    参数name or flags是一个名称还是一个选项列表。

    参数action是当遇到这个参数时怎么样处理。

    参数nargs是指这个命令要消耗多少个命令行参数。

    参数const是有常量的需求,但不需要读取的。

    参数default是当命令在命令行里不存在时默认的值。

    参数type是命令行参数转换为那一种Python类型。

    参数choices是这个命令参数允许的值的容器。

    参数required是命令参数是否可选。

    参数help是描述这个参数是做什么事情的。

    参数metavar是在使用说明里参数的名称。

    参数dest是参数在分析之后产生的对象里的属性名称。

     

    ArgumentParser.parse_args(args=None, namespace=None)

    转换参数字符串为命令行对象,并把相关参数转换为属性。

    参数args是直接给出命令行参数,默认是使用系统的sys.argv参数;参数namespace是命名对象的名称。



    蔡军生 QQ:9073204  深圳



沪ICP备19023445号-2号
友情链接