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 相关文章推荐
使用Nginx+uWsgi实现Python的Django框架站点动静分离
Mar 21 Python
Python使用functools模块中的partial函数生成偏函数
Jul 02 Python
Python 通过URL打开图片实例详解
Jun 01 Python
对python插入数据库和生成插入sql的示例讲解
Nov 14 Python
Python 学习教程之networkx
Apr 15 Python
Python中函数参数匹配模型详解
Jun 09 Python
用Python抢火车票的简单小程序实现解析
Aug 14 Python
解决python3 requests headers参数不能有中文的问题
Aug 21 Python
Python内置类型性能分析过程实例
Jan 29 Python
python如何保存文本文件
Jun 07 Python
详解如何修改python中字典的键和值
Sep 29 Python
python超详细实现完整学生成绩管理系统
Mar 17 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
收音机的保养
2021/03/01 无线电
生成卡号php代码
2008/04/09 PHP
提升PHP性能的21种方法介绍
2013/06/25 PHP
php定义一个参数带有默认值的函数实例分析
2015/03/16 PHP
JS 树形递归实例代码
2010/05/18 Javascript
firefox下input type="file"的size是多大
2011/10/24 Javascript
jquery自定义属性(类型/属性值)
2013/05/21 Javascript
目前流行的JavaScript库的介绍及对比
2013/09/29 Javascript
jquery实现当滑动到一定位置时固定效果
2014/06/17 Javascript
javascript编程异常处理实例小结
2015/11/30 Javascript
WEB前端开发框架Bootstrap3 VS Foundation5
2016/05/16 Javascript
JavaScript正则表达式替换字符串中图片地址(img src)的方法
2017/01/13 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
2017/07/11 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
如何用Node写页面爬虫的工具集
2018/10/26 Javascript
使用JavaScript计算前一天和后一天的思路详解
2019/12/20 Javascript
js最全的数组的降维5种办法(小结)
2020/04/28 Javascript
Python Queue模块详细介绍及实例
2016/12/27 Python
Python时间戳使用和相互转换详解
2017/12/11 Python
使用Django开发简单接口实现文章增删改查
2019/05/09 Python
Python爬虫运用正则表达式的方法和优缺点
2019/08/25 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
CSS实现鼠标滑过鼠标点击代码写法
2016/12/26 HTML / CSS
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
IE兼容css3圆角的实现代码
2011/07/21 HTML / CSS
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
HTML5的结构和语义(4):语义性的内联元素
2008/10/17 HTML / CSS
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
澳大利亚网上买书:Angus & Robertson
2019/07/21 全球购物
澳大利亚领先的女性运动服品牌:Lorna Jane
2020/06/19 全球购物
抽象方法、抽象类怎样声明
2014/10/25 面试题
餐厅总厨求职信
2014/03/04 职场文书
服务承诺口号
2014/05/22 职场文书
大学生就业指导课心得体会
2016/01/15 职场文书
初中教务主任竞聘演讲稿(范文)
2019/08/20 职场文书