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

Python module ---- getopt的更多相关文章

  1. python module getopt usage

    import getopt import sys def usage(): print 'this is a usage.' def main(): try: print sys.argv #sys. ...

  2. install python module

    [install python module] 参考:http://docs.python.org/2.7/install/index.html

  3. (转载)python: getopt的使用;

    注: 该文转载于https://blog.csdn.net/tianzhu123/article/details/7655499python中 getopt 模块, 该模块是专门用来处理命令行参数的 ...

  4. Nuke Python module的使用

    最近很多脚本工作都需要脱离nuke的gui环境运行,没有了script editor就必须要尝试Nuke Python module功能了.该模式可以执行大部分在GUI环境中的命令,在自动生成或者批量 ...

  5. __import__ 与动态加载 python module

    原文出处: koala bear    Direct use of __import__() is rare, except in cases where you want to import a m ...

  6. Python module中的全局变量

    Python module中的全局变量 我想要实现一个python module,这个module中有一些配置项,这些配置项可以被读取,被修改.一个可行的方案是把这些配置项写到一个叫settings. ...

  7. Python module all in one

    Python module all in one Python Modules https://docs.python.org/3/tutorial/modules.html Fibonacc # F ...

  8. Python之getopt模块

    1.getopt——C风格命令行解析 http://docs.python.org/2.7/library/getopt.html#module-getopt getopt.getopt(args, ...

  9. Python.Module.site

    site " This module is automatically imported during initialization. The automatic import can be ...

随机推荐

  1. Python爬取今日头条段子

    刚入门Python爬虫,试了下爬取今日头条官网中的段子,网址为https://www.toutiao.com/ch/essay_joke/源码比较简陋,如下: import requests impo ...

  2. Centos7快速部署CloudStack服务器

    OS:centos7 server:172.16.13.159 client:172.16.13.156 1.下载要用到的安装包 在client上: wget http://download.clou ...

  3. 【代码问题】MatConvNet自带example中 fast_rcnn_evaluate出错

    fast_rcnn_evaluate中调用cnn_setup_data_voc07函数读取相关数据时,在类似 [gtids,t]=textread(sprintf(VOCopts.imgsetpath ...

  4. 如何开启 MySQL InnoDB 共享表空间和独立表空间

    修改数据库的表空间管理方式 修改my.ini文件的innodb_file_per_table的参数值即可,但是修改不能影响之前已经使用过的共享表空间和独立表空间: innodb_file_per_ta ...

  5. 黄聪:Windows2012-IIS8安装SSL证书

    开始菜单->右上角搜索按钮-> mmc 弹出窗口 关闭控制台会提示保存 打开iis新建站点,为了兼容不支持sni的浏览器,绑定默认https

  6. gcc ld 链接器相关知识,调试指令(程序员的自我修养----链接、装载与库)

    最近解决一个动态链接上的问题,因为以前从来没有接触过这方面的知识,所以恶补了一下,首先要了解gcc编译指令(makefile),ld链接器的选项(还有连接脚本section指定内存位置),熟悉查看连接 ...

  7. CentOS7.4下部署hadoop3.1.1

    CentOS7.4下部署hadoop3.1.1 契机 由于工作原因要部署hadoop的集群,习惯使用最新的稳定版本2018年的时候由于时间紧破部署了2.7.2版本,最新由于又要部署有研究了一下3.x的 ...

  8. mysql 存储过程的实现原理

    一.描述 存储过程是一组可以完成特定功能的SQL语句集,经编译后存储在数据库中 statement语句(DDL.DML.导出及管理语句等).异常处理.流程控制二.创建存储过程 系统做语句分析,如果没有 ...

  9. spring入门-注解的使用

    说明: 使用注解和使用配置文件实现的功能是一样的,都是为了解耦,但是配置文件语法属于非编程语言法语,无法调试,难以定位bug,使用注解更易定位问题. 配置步骤 编译器必须先安装了STS插件 第一步 导 ...

  10. Supervisor配置

    Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统 ...