码迷,mamicode.com
首页 > 其他好文 > 详细

argparse模块

时间:2018-01-22 17:36:38      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:type   sum   name   info   sys   argv   default   val   argparse   

argparse是一个方便的对于cmd-line的接口函数,可以方便的从sys.argv解析出命令参数,并自动的产生帮助文档。

 

1:create一个parser对象:

创建一个ArgumentParser类型的对象,parser = argparse.ArgumentParser(description = ‘Process some integers‘)

之后的cmd-line的处理,都是通过该object进行调用。

2:增加argument,parser.add_argument(‘--sum‘, dest=‘accumulate‘, action=‘store_const‘, const=sum,default=max,help=‘sum the integers‘)

在增加argument的时候,会有很多option,来表征该参数的很多行为。

3:Parsing argument,parser.parse_args([‘--sum‘, ‘7‘, ‘-1‘, ‘42‘]) 一般会产生一个简单的namespace类型的object。

 

修饰一个ArgumentParser objects的选项:

    技术分享图片

add_argument的选项方法:

    技术分享图片

  1)name、flags,optional的选项,可以是‘-f‘   “--foo”,-表示缩写,--表示全称。

           必须的选项,‘bar’ 必须有cmd,  python.py bar这样来使用。

  2)action,表示接收到该参数,之后的行为以及存储。

    action = ‘store‘,默认的选项,将值保存在自己的数据结构中,

    action = ‘store_const‘,val前加const,保存在自己的数据结构中,

    action = ‘store_true‘,‘store_false’,转变为只是保存一个布尔值,

    action = ‘append’,将参数按一个list的形式,保存下来,可以有多个参数,

      add_argument(‘--foo 1  --foo  2‘, action = ‘append‘),保存list,[1,2]

    action = ‘count‘,只是将计数之后的值,保存下来,

    也可以自定义action,这时,需要继承argparse.Action,做新的class,重写__call__函数。

  3)nargs,指定某个选项需要指定的个数。

    N,表示n个arguments打包为一个list。

      技术分享图片

    ?,表示可选的cmd  option,可以指定default的值。

      技术分享图片

    *,cmd_line中的所有元素都打包为一个list。

      技术分享图片

    +,与*类似,但是如果没有具体指定,会报错。

      技术分享图片

  4)const和default的cmd_line option。

     5)type,argparser接收cmd-line的值,都是按string来接收的,如果需要转为int/float,需要type选项。

      同时也支持FileType,mode=,bufsize=,encoding=,

      技术分享图片

      技术分享图片

  6)choice,用在checker,检查输入值的范围。

      技术分享图片

  7)required,显示指明-f/-foo这类的cmdline option必须配置。

      技术分享图片

  8)dest,执行存储时的变量名。

      技术分享图片

  9)help,指定--help时,的打印信息。

      技术分享图片

argparse模块

标签:type   sum   name   info   sys   argv   default   val   argparse   

原文地址:https://www.cnblogs.com/-9-8/p/8329256.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!