python 标准库-argparse 学习

来源:互联网 发布:淘宝aj厂货店铺 编辑:程序博客网 时间:2024/05/18 09:56

链接:https://docs.python.org/3/library/argparse.html#module-argparse

第一步:创建解析器

parser = 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)

参数 :

  1. prog=None:定义程序的名称,方便以后用 %(prog)s 引用这个名字

  2. usage=None:用法列表,形如 usage: PROG [-h] [–sum] 默认是系统根据参数自定义的,可以自己之传值指定。

  3. description:在开头加入一短话
  4. epilog :尾部一段话
  5. romfile_prefix_chars:表示参数可以使用文件,默认不可以。
  6. argument_default :全局默认值。argument_default =argparse.SUPPRESS 自动隐藏。
  7. conflict_handler :本来不允许,两个参数一样的,设置成conflict_handler = ‘resolve’。允许,并且是新值覆盖旧
  8. add_help : 默认有一个-h参数可用,可以设置成False

第二步:add_argument()

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

标识命令行参数如何被解析。

  1. name or flags :有两种,区别是位置参数必须有,根据位置传入,可选参数要提前告知。‘BAR’-f ‘F’

    1. optional argument:可选的‘-f’ ‘–foo’
    2. positional argument :必须有的 ‘bar’通过前后位置输入
  2. action: 对待参数的动作

    1. action=”store”:默认属性,用来储存命令行参数
    2. action=”store_true ” or action=”store_true ” :设置默认参数为true.这个相当于一个开关,最好只能让用户选true或者false
    3. action=”store_const: 如果用户不给,默认使用const的值。对与可选变量很好用

      parser = argparse.ArgumentParser()parser.add_argument('--foo', action='store_const', const=42)parser.parse_args('--foo'.split())
    4. action=”append :这个储存一个列表,会把每一个参数append到list中

    5. action=”append_const:和store_const效果一样,都有const= 的属性
    6. action=”count:能自动返回关键字参数的调用次数,比如:-vvv 为三次
    7. action=”version:能够打印版本的信息,当启动的时候会自动调用
    8. 还可以自定一个类,来解析,暂时不需要
  3. type:数据类型。默认是字符串,能设置为float,int,open。或着是自定的方法,接受一个string,返回东西

  4. choices :参数必须从这个列表中选择choices=[‘rock’, ‘paper’, ‘scissors’]
  5. required:让-f 类型的变成必选参数
  6. help:设置这个参数的 帮助文档,可以使用%(prog)s,%(default)s, %(type)s,等参数的信息(这个字符串如果要标识%请用 %%)
  7. metavar:别名,就是显示着好看,没什么用,默认是变成大写
  8. dest: :parse_args()输出的时候的名字,最终的属性名字。

第三步:parse_args()得到输入的属性

args = parser.parse_args()
返回的是Namespace类,这是一个简单类,就是为了储存属性值

  1. vars(args):把Namespace类转化为 dick_like类型

所以,像字典方法一样,如果你需要值,就是用 args.属性名字,有意思的是属性名字就是你当时起的属性名字(不带”–“)

over

0 0
原创粉丝点击