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 ...
随机推荐
- Spark源码系列:RDD repartition、coalesce 对比
在上一篇文章中 Spark源码系列:DataFrame repartition.coalesce 对比 对DataFrame的repartition.coalesce进行了对比,在这篇文章中,将会对R ...
- Spring AOP详解
一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址:http://www.cnbl ...
- 解决thinkPHP3.2.3使用Smarty模板后无法使用系统常量问题
https://blog.csdn.net/u014520745/article/details/52029411 在ThinkPHP/Library/Think/View.class.php 输出模 ...
- java 生成微信的二维码 工具类
package com.app.wii.util; import java.io.File;import java.io.FileInputStream;import java.io.FileOutp ...
- MegaCLi命令总结
MegaCli命令总结 MegaCli 版本8.00.29,raid卡为lsi 8888elp,固件11.0.1-0036 1 巡读 一MegaCli -adppr -enblauto -a0 ...
- Solr4.7.0连接MySQL
1.把Mysql的Jar包 例如:mysql-connector-java-5.1.8-bin.jar 或其他版本 放到D:\apache-tomcat-7.0.57\webapps\solr\W ...
- Mysql-12条优化技巧
应用程序慢如牛,原因多多,可能是网络的原因.可能是系统架构的原因,还有可能是数据库的原因. 那么如何提高数据库SQL语句执行速度呢?有人会说性能调优是数据库管理员(DBA)的事,然而性能调优跟程序员们 ...
- python之路——24
复习 1.面向对象编程 思想:角色的抽象,创建类,实例化,操作实例2.面向对象的关键字 1.类的静态属性,存储在类的命名空间 2.类名.方法(对象),对象.方法 3.对象可以使用静态变量:类不可以使用 ...
- 填坑:Java 中的日期转换
我们之前讨论过时间,在Java 中有一些方法会出现横线?比如Date 过期方法. 参考文章:知识点:java一些方法会有横线?以Date 过期方法为例 Java中的日期和时间处理方法 Date类(官方 ...
- 刘志梅2017710101152.《面向对象程序设计(java)》第十二周学习总结
实验十二 图形程序设计 实验时间 2018-11-14 1.理论知识 (1) 基本AWT库采用将处理用户界面元素的任务委派给每个目标平台的本地GUI工具箱的方式,由本地GUI工具箱负责用户界面元素的 ...