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 collections模块实例讲解
Apr 07 Python
Python 检查数组元素是否存在类似PHP isset()方法
Oct 14 Python
Python下的常用下载安装工具pip的安装方法
Nov 13 Python
Pyhton中单行和多行注释的使用方法及规范
Oct 11 Python
python实现一个简单的并查集的示例代码
Mar 19 Python
Python操作Oracle数据库的简单方法和封装类实例
May 07 Python
python如何求解两数的最大公约数
Sep 27 Python
python算法与数据结构之单链表的实现代码
Jun 27 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
Aug 24 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
Nov 11 Python
Python OpenCV视频截取并保存实现代码
Nov 30 Python
Python figure参数及subplot子图绘制代码
Apr 18 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
PHP编码规范-php coding standard
2007/03/16 PHP
常用的php ADODB使用方法集锦
2008/03/25 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
2017/06/06 PHP
laravel接管Dingo-api和默认的错误处理方式
2019/10/25 PHP
JavaScript的递归之递归与循环示例介绍
2013/08/05 Javascript
js实现身份证号码验证的简单实例
2014/02/19 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
JS判断浏览器是否支持某一个CSS3属性的方法
2014/10/17 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
javascript中call apply 的应用场景
2015/04/16 Javascript
js强制把网址设为默认首页
2015/09/29 Javascript
jquery.serialize() 函数语法及简单实例
2016/07/08 Javascript
js点击任意区域弹出层消失实现代码
2016/12/27 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
vue实现页面加载动画效果
2017/09/19 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
2017/12/28 Javascript
解决vue中对象属性改变视图不更新的问题
2018/02/23 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
基于jQuery实现可编辑的表格
2019/12/11 jQuery
js简单实现自动生成表格功能示例
2020/06/02 Javascript
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
跟老齐学Python之??碌某?? target=
2014/09/12 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
2017/05/16 Python
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
python中嵌套函数的实操步骤
2019/02/27 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
史上最详细的Python打包成exe文件教程
2021/01/17 Python
viagogo法国票务平台:演唱会、体育比赛、戏剧门票
2017/03/27 全球购物
英国马匹装备和马术用品购物网站:Equine Superstore
2019/03/03 全球购物
卡骆驰英国官网:Crocs英国
2019/08/22 全球购物
物业管理专业个人的自我评价
2013/11/19 职场文书
教师演讲稿大全
2014/05/16 职场文书
幼儿教师个人总结
2015/02/05 职场文书
雷锋的观后感
2015/06/10 职场文书
浅析MongoDB之安全认证
2021/06/26 MongoDB