zoukankan      html  css  js  c++  java
  • 『Argparse』命令行解析

    一、基本用法

    Python标准库推荐使用的命令行解析模块argparse

    还有其他两个模块实现这一功能,getopt(等同于C语言中的getopt())和弃用的optparse。因为argparse是基于optparse,所以用法很类似。

    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument("-v", "--verbose", help="increase output verbosity",
                        action="store_true", type=str)
    args = parser.parse_args()
    if args.verbose:
        print "verbosity turned on"
    

     运行如下,

    $ python prog.py -v
    verbosity turned on
    $ python prog.py --help
    usage: prog.py [-h] [-v]
    
    optional arguments:
      -h, --help     show this help message and exit
      -v, --verbose  increase output verbosity

    注意帮助信息也有相应的变化。

    二、参数介绍

    1.解析器创建

    解析器创建的同时可以为解析器添加程序说明,运行 python 文件 时即可显示,

    可以自行对比各个参数和截图的位置理解一下参数意义

    import argparse
    
    parser = argparse.ArgumentParser(prog="demo_for_argparse",
                                     description = "A demo program",
                                     epilog = "The end of usage")
    parser.print_help()
    

     

    2.添加待解析参数

    parser.add_argument("name")
    parser.add_argument('-a', '--age', type=int, required=True)
    parser.add_argument("-s", "--status", choices=['alpha', 'beta', 'released'], type=str, dest='myStatue')
    parser.add_argument("-v", "--version", action='version', version='%(prog)s 1.0')  # version为action的可选参数,打印版本信息
    parser.print_help()
    
    参数名称 功能
    name or flags 名称或标记
    action 解析后触发指定操作,需要后续  参数
    nargs 待解析参数数目
    const actions和nargs可能用到的值
    default 默认值
    type 解析后参数保存类型
    choices 参数的可选值
    required 是否必须提供,默认False
    help 参数说明
    dest 解析后保存的对象名称

    3.解析参数

    args = parser.parse_args()
    print(args)
    

    parse_args会检查输入参数是否正确,发现错误会报错且给出正确的用法,解析后的args.属性名即可调用,但是,属性名是全称,缩写不可以

    args, unparsed = parser.parse_known_args()
    print("{},{}".format(args, unparsed))
    print(args.age)
    

    这种解析方式接收到意外的参数键值时不会报错,会以list形式存储到unparsed中:

  • 相关阅读:
    JavaScript 监听回车事件
    上下文(Context)和作用域(Scope)
    图解Javascript上下文与作用域
    JavaScript的作用域(Scope)和上下文(Context)
    Table 边框合并(collapse)
    Aspose.Words .NET如何实现文档合并的同页分页显示
    【C#.NET】Http Handler 介绍---(转)
    Oracle无监听程序
    PL/SQL程序设计、流程控制
    ORACLE函数、连接查询、约束
  • 原文地址:https://www.cnblogs.com/hellcat/p/8602430.html
Copyright © 2011-2022 走看看