Python getopt模块处理命令行选项实例


Posted in Python onMay 13, 2014

getopt模块用于抽出命令行选项和参数,也就是sys.argv
命令行选项使得程序的参数更加灵活。支持短选项模式和长选项模式
例如  python scriptname.py -f 'hello' --directory-prefix=/home -t --format 'a' 'b'

import getopt, sys
shortargs = 'f:t'
longargs = ['directory-prefix=', 'format']
opts, args = getopt.getopt( sys.argv[1:], shortargs, longargs )

getopt.getopt ( [命令行参数列表], '短选项', [长选项列表] )

短选项名后的冒号 : 表示该选项必须有附加的参数
长选项名后的等号 = 表示该选项必须有附加的参数

返回 opts 和 args
opts 是一个参数选项及其value的元组 ( ( '-f', 'hello'), ( '-t', '' ), ( '--format', '' ), ( '--directory-prefix', '/home' ) )
args 是一个除去有用参数外其他的命令行输入 ( 'a', 'b' )  

# 然后遍历 opts 便可以获取所有的命令行选项及其对应参数了
for opt, val in opts:
    if opt in ( '-f', '--format' ):
        pass
    if ....

使用字典接受命令行的输入,然后再传送字典,可以使得命令行参数的接口更加健壮

# 两个来自 python2.5 Documentation 的例子

>>> import getopt, sys
>>> arg = '-a -b -c foo -d bar a1 a2'
>>> optlist, args = getopt.getopt( sys.argv[1:], 'abc:d:' )
>>> optlist
[('-a', ''), ('-b', ''), ('-c', 'foo'), ('-d', 'bar')]
>>> args
['a1', 'a2']
>>> arg = '--condition=foo --testing --output-file abc.def -x a1 a2'
>>> optlist, args = getopt.getopt( sys.argv[1:], 'x', ['condition=', 'output-file=', 'testing'] )
>>> optlist
[ ('--condition', 'foo'), ('--testing', ''), ('--output-file', 'abc.def'), ('-x','') ]
>>> args
['a1', 'a2']
Python 相关文章推荐
提升Python程序运行效率的6个方法
Mar 31 Python
Numpy截取指定范围内的数据方法
Nov 14 Python
python 随机打乱 图片和对应的标签方法
Dec 14 Python
在python环境下运用kafka对数据进行实时传输的方法
Dec 27 Python
关于python下cv.waitKey无响应的原因及解决方法
Jan 10 Python
用Python将结果保存为xlsx的方法
Jan 28 Python
详解Python3 基本数据类型
Apr 19 Python
python 正则表达式参数替换实例详解
Jan 17 Python
Python使用扩展库pywin32实现批量文档打印实例
Apr 09 Python
python中wheel的用法整理
Jun 15 Python
详解python logging日志传输
Jul 01 Python
python程序如何进行保存
Jul 03 Python
Python random模块(获取随机数)常用方法和使用例子
May 13 #Python
Python自动化测试工具Splinter简介和使用实例
May 13 #Python
Python获取远程文件大小的函数代码分享
May 13 #Python
Python FTP操作类代码分享
May 13 #Python
python生成指定尺寸缩略图的示例
May 07 #Python
python读取浮点数和读取文本文件示例
May 06 #Python
python创建线程示例
May 06 #Python
You might like
Google Voice 短信发送接口PHP开源版(2010.5更新)
2010/07/22 PHP
Windows中使用计划任务自动执行PHP程序实例
2014/05/09 PHP
php中array_column函数简单实现方法
2016/07/11 PHP
早该知道的7个JavaScript技巧
2013/03/27 Javascript
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
原生js与jQuery实现简单的tab切换特效对比
2015/07/30 Javascript
让你一句话理解闭包(简单易懂)
2016/06/03 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
2016/09/17 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
2016/11/30 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
Babel 入门教程学习笔记
2018/06/13 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
python妹子图简单爬虫实例
2015/07/07 Python
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
浅谈python数据类型及类型转换
2017/12/18 Python
Python实现读取及写入csv文件的方法示例
2018/01/12 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
python中time tzset()函数实例用法
2021/02/18 Python
Internet主要有哪些网络群组成
2015/12/24 面试题
法务专员岗位职责
2014/01/02 职场文书
生育关怀行动实施方案
2014/03/26 职场文书
食品安全工作方案
2014/05/07 职场文书
2015年员工试用期工作总结
2014/12/12 职场文书
失恋33天观后感
2015/06/11 职场文书
单身证明范本
2015/06/15 职场文书
婚礼迎宾词大全
2015/08/10 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书
OpenCV-Python 实现两张图片自动拼接成全景图
2021/06/11 Python