zoukankan      html  css  js  c++  java
  • Python module ---- getopt

    optlist, argv = getopt.getopt(argv, 'cdsarRvn:e:E:f:F:w:O:m:M:o:g:')
    

    模块getopt用于分割了main函数的参数,参数args一般是sys.argv[1:],函数返回两个列表:opts 和args 。

    参数值 optlist/opts: 是个包含两元祖的列表,每个元祖是分析出来的格式信息,分析出的格式信息,包含一个参数选项及其value的元组,每个元素为:( 选项串, 附加参数) 。如果没有附加参数则为空串'' 。(e.g: [(-m, build.ninja),(-o, make.log),(-g, soong_build.ninja)],[-d, ])

    参数值 argv/args: 是个包含字符串的列表,包含那些没有‘-’或‘--’的参数,即不属于格式信息的剩余的命令行参数。一般尾随格式参数。(e.g: aaa, oooo)

    getopt(args, shortopts, longopts = [])  #shortopts 短格式 (-) ;longopts 长格式(--)

    短选项名后的冒号 : 表示该选项必须有附加的参数,如果还有此选项的附加参数,可以用空格分开,也可以不分开。长度任意,可以用引号。

    如以下是正确的:
    -o
    -oa
    -obbbb
    -o bbbb
    -o "a b"

    长选项名后的等号 = 表示该选项必须有附加的参数,如果还有些选项的附加参数,后面要紧跟"=",再加上参数。"="号前后不能有空格。如以下是正确的:

    --help=file
    --help file

    用法

    import getopt, sys
    shortargs = 'f:t'
    longargs = ['directory-prefix=', 'format']
    opts, args = getopt.getopt( sys.argv[1:], shortargs, longargs )
    
    # 然后遍历 opts 便可以获取所有的命令行选项及其对应参数了
    for opt, val in opts:
        if opt in ( '-f', '--format' ):
            pass
        if ....

    主要是对分析出的参数进行判断是否存在,然后再进一步处理:使用一个for循环,依次从opts 中取出一个两元组,赋给 opt, val 两个变量,遍历opts。接着对取出的选项参数进行处理。

    处理参数最好用try...expect...以防止程序因异常而中断。

    try:  
        opts, args = getopt.getopt(sys.argv[1:], "ho:", ["help", "output="])  
    except getopt.GetoptError:  
        # print help information and exit:  

    【参考文档】

    https://andylin02.iteye.com/blog/845355

    http://blog.csdn.net/chengxuyuanyonghu/article/details/42556885

    https://www.cnblogs.com/zz22--/p/7719285.html

    https://www.jb51.net/article/50067.htm

  • 相关阅读:
    mysql 案例 ~ insert插入慢的场景
    mysql 原理 ~ DDL之在线DDL
    mongodb系列~ 索引详解
    mysql案例 ~ mysql磁盘分析与调优
    mysql 查询优化 ~ explain与索引失效
    mysql 原理 ~ 死锁问题
    mysql 原理 ~ 索引通说
    es集群数据库~基本安装
    mysql 案例 ~ pt-xtrabackup 使用
    mysql 原理 ~ 事务隔离机制
  • 原文地址:https://www.cnblogs.com/chenyuting/p/10711440.html
Copyright © 2011-2022 走看看