zoukankan      html  css  js  c++  java
  • python之命令行参数解析模块argparse

    """
    argparse模块使得写用户友好性命令行接口很容易,程序定义所需要的参数,argparse会从ays.argv中提取出这些参数。argparse模块也能自动的产生帮助和用法信息,并且可以报告用户
    的无效参数错误
    sys.argv[0]表示程序所在路径
    ays.argv[1:]表示命令行的所有参数,是string的列表
    """

    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 integer(default: find the max)') args = parser.parse_args() print(args.accumulate(args.integers))

    运行结果:

    zhuh@baojp-24000649:~$ python3 arg1.py -h
    
    usage: arg1.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 integer(default: find the max)
    
    zhuh@baojp-24000649:~$ python3 arg1.py 1 2 3 4
    4
    zhuh@baojp-24000649:~$ python3 arg1.py 1 2 3 4 --sum
    10

    1. Create parser

    使用argparse的第一步是创建一个ArgumentParser的对象:

    parser = argparse.ArgumentParser(description = "The description for the program")

    ArgumentParser对象会保存所有从命令行提取python数据类型所必须的所有信息。

    2.Adding arguments

    用程序所需要参数的信息填充ArgumentParser对象的过程是通过调用add_argument()函数完成。

    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 integer(default: find the max)')

    之后,调用函数parse_args()会返回两个属性(attribute),intergers和accumulate。intergers是含有一个或者多个整数的list,accumulate是sum()或者max()函数。

    3.Parsing arguments

    parse_args()函数会检查命令行,把每一个参数转换成正确的类型并且调用正确的action。

    4.class argparse.ArgumentParser

    class argparse.ArgumentParser(prog=Noneusage=Nonedescription=Noneepilog=Noneparents=[]formatter_class=argparse.HelpFormatterprefix_chars='-'fromfile_prefix_chars=Noneargument_default=Noneconflict_handler='error'add_help=True)

    add_argument()常用的参数:

    dest:如果提供dest,例如dest="a",那么可以通过args.a访问该参数

    default:设置参数的默认值

    action:参数出发的动作

    store:保存参数,默认

    store_const:保存一个被定义为参数规格一部分的值(常量),而不是一个来自参数解析而来的值。

    store_ture/store_false:保存相应的布尔值

    append:将值保存在一个列表中。

    append_const:将一个定义在参数规格中的值(常量)保存在一个列表中。

    count:参数出现的次数

    parser.add_argument("-v", "--verbosity", action="count", default=0, help="increase output verbosity")

    version:打印程序版本信息

    type:把从命令行输入的结果转成设置的类型

    choice:允许的参数值

    parser.add_argument("-v", "--verbosity", type=int, choices=[0, 1, 2], help="increase output verbosity")

    help:参数命令的介绍

    参考:python文档

  • 相关阅读:
    批处理实现mysql的备份
    paper 8:支持向量机系列五:Numerical Optimization —— 简要介绍求解求解 SVM 的数值优化算法。
    paper 7:支持向量机系列四:Outliers —— 介绍支持向量机使用松弛变量处理 outliers 方法。
    paper 6:支持向量机系列三:Kernel —— 介绍核方法,并由此将支持向量机推广到非线性的情况。
    paper 5:支持向量机系列二: Support Vector —— 介绍支持向量机目标函数的 dual 优化推导,并得出“支持向量”的概念。
    paper 4:支持向量机系列一: Maximum Margin Classifier —— 支持向量机简介。
    paper 3:matlab中save,load使用方法小结
    paper 2:图像处理常用的Matlab函数汇总
    paper 1:图像特征提取
    学习用CMake来编写Qt程序
  • 原文地址:https://www.cnblogs.com/catpainter/p/8486243.html
Copyright © 2011-2022 走看看