zoukankan      html  css  js  c++  java
  • python命令行解析工具argparse模块【1】

      argpaser是python中很好用的一个命令行解析模块,使用它我们可以很方便的创建用户友好型命令行程序。而且argparse会自动生成帮助信息和错误信息。

    一、示例

      例如下面的例子,从命令行中获取几个整数,然后获取它们的和或者最大值。

    import argparse
    
    parser = argparse.ArgumentParser(description='Process some integers.')
    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)')
    
    args = parser.parse_args()
    print args.accumulate(args.integers)

      从命令行中输入prog.py -h,会显示如下信息

    $ prog.py -h
    usage: prog.py [-h] [--sum] N [N ...]
    
    Process some integers.
    
    positional arguments:
     N           an integer for the accumulator
    
    optional arguments:
     -h, --help  show this help message and exit
     --sum       sum the integers (default: find the max)

      如果使用合适的参数,还可以求和或者取得最大值。

    $ prog.py 1 2 3 4
    4
    
    $ prog.py 1 2 3 4 --sum
    10
       如果传递错误的参数,将返回错误信息。
    $ prog.py a b c
    usage: prog.py [-h] [--sum] N [N ...]
    prog.py: error: argument N: invalid int value: 'a'
        下面我们详细解释这个例子:
            1.创建parser
            首先,创建一个ArgumentParser对象。
    >>> parser = argparse.ArgumentParser(description='Process some integers.')
            ArgumentParser对象中保存着解析命令行参数所必需的信息。
            2.添加参数
            通过调用add_argument()方法将命令行中的参数保存到ArgumentParser对象中。
    >>> 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)')

       后面再调用parse_args(),将会返回一个包含integers和accumulate两个属性的对象,integers是一个列表,而accumulate可以是sum()函数(如果指定了--sum)或者max()函数。

      3.解析参数
        通过parse_args()方法解析参数,返回一个命名空间对象。
    >>> parser.parse_args(['--sum', '7', '-1', '42'])
    Namespace(accumulate=<built-in function sum>, integers=[7, -1, 42])
         如果在脚本中调用这个函数,parse_args()不会解析任何参数。ArgumentParser会从sys.argv中自动检测命令行参数。
  • 相关阅读:
    Shell 脚本中调用另一个 Shell 脚本的三种方式
    Shell脚本的三种执行方式
    python selenium中Excel数据维护(二)
    python里面的xlrd模块详解(一)
    selenium处理iframe定位于切换问题解决办法
    Selenium在定位的class含有空格的复合类的解决办法整理
    SqlSugar ORM已经支持读写分离
    ASP.NET Core的Kestrel服务器
    服务是如何加载并运行的, Kestrel、配置与环境
    ASP.NET Core Web服务器 Kestrel和Http.sys 特性详解
  • 原文地址:https://www.cnblogs.com/fireflow/p/4826985.html
Copyright © 2011-2022 走看看