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
Python module ---- getopt的更多相关文章
- python module getopt usage
import getopt import sys def usage(): print 'this is a usage.' def main(): try: print sys.argv #sys. ...
- install python module
[install python module] 参考:http://docs.python.org/2.7/install/index.html
- (转载)python: getopt的使用;
注: 该文转载于https://blog.csdn.net/tianzhu123/article/details/7655499python中 getopt 模块, 该模块是专门用来处理命令行参数的 ...
- Nuke Python module的使用
最近很多脚本工作都需要脱离nuke的gui环境运行,没有了script editor就必须要尝试Nuke Python module功能了.该模式可以执行大部分在GUI环境中的命令,在自动生成或者批量 ...
- __import__ 与动态加载 python module
原文出处: koala bear Direct use of __import__() is rare, except in cases where you want to import a m ...
- Python module中的全局变量
Python module中的全局变量 我想要实现一个python module,这个module中有一些配置项,这些配置项可以被读取,被修改.一个可行的方案是把这些配置项写到一个叫settings. ...
- Python module all in one
Python module all in one Python Modules https://docs.python.org/3/tutorial/modules.html Fibonacc # F ...
- Python之getopt模块
1.getopt——C风格命令行解析 http://docs.python.org/2.7/library/getopt.html#module-getopt getopt.getopt(args, ...
- Python.Module.site
site " This module is automatically imported during initialization. The automatic import can be ...
随机推荐
- Python爬取今日头条段子
刚入门Python爬虫,试了下爬取今日头条官网中的段子,网址为https://www.toutiao.com/ch/essay_joke/源码比较简陋,如下: import requests impo ...
- Centos7快速部署CloudStack服务器
OS:centos7 server:172.16.13.159 client:172.16.13.156 1.下载要用到的安装包 在client上: wget http://download.clou ...
- 【代码问题】MatConvNet自带example中 fast_rcnn_evaluate出错
fast_rcnn_evaluate中调用cnn_setup_data_voc07函数读取相关数据时,在类似 [gtids,t]=textread(sprintf(VOCopts.imgsetpath ...
- 如何开启 MySQL InnoDB 共享表空间和独立表空间
修改数据库的表空间管理方式 修改my.ini文件的innodb_file_per_table的参数值即可,但是修改不能影响之前已经使用过的共享表空间和独立表空间: innodb_file_per_ta ...
- 黄聪:Windows2012-IIS8安装SSL证书
开始菜单->右上角搜索按钮-> mmc 弹出窗口 关闭控制台会提示保存 打开iis新建站点,为了兼容不支持sni的浏览器,绑定默认https
- gcc ld 链接器相关知识,调试指令(程序员的自我修养----链接、装载与库)
最近解决一个动态链接上的问题,因为以前从来没有接触过这方面的知识,所以恶补了一下,首先要了解gcc编译指令(makefile),ld链接器的选项(还有连接脚本section指定内存位置),熟悉查看连接 ...
- CentOS7.4下部署hadoop3.1.1
CentOS7.4下部署hadoop3.1.1 契机 由于工作原因要部署hadoop的集群,习惯使用最新的稳定版本2018年的时候由于时间紧破部署了2.7.2版本,最新由于又要部署有研究了一下3.x的 ...
- mysql 存储过程的实现原理
一.描述 存储过程是一组可以完成特定功能的SQL语句集,经编译后存储在数据库中 statement语句(DDL.DML.导出及管理语句等).异常处理.流程控制二.创建存储过程 系统做语句分析,如果没有 ...
- spring入门-注解的使用
说明: 使用注解和使用配置文件实现的功能是一样的,都是为了解耦,但是配置文件语法属于非编程语言法语,无法调试,难以定位bug,使用注解更易定位问题. 配置步骤 编译器必须先安装了STS插件 第一步 导 ...
- Supervisor配置
Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统 ...