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 多线程实现检测服务器在线情况
Nov 25 Python
Python冒泡排序注意要点实例详解
Sep 09 Python
python 捕获 shell/bash 脚本的输出结果实例
Jan 04 Python
python数字图像处理实现直方图与均衡化
May 04 Python
python检索特定内容的文本文件实例
Jun 05 Python
解决import tensorflow as tf 出错的原因
Apr 16 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
Jul 05 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
Aug 04 Python
在django中查询获取数据,get, filter,all(),values()操作
Aug 09 Python
python 调整图片亮度的示例
Dec 03 Python
python 高阶函数简单介绍
Feb 19 Python
分享几种python 变量合并方法
Mar 20 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实现简单汉字验证码
2015/07/28 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
Laravel定时任务的每秒执行代码
2019/10/22 PHP
js获取单选按钮的数据
2006/11/27 Javascript
找到了一篇jQuery与Prototype并存的冲突的解决方法
2007/08/29 Javascript
Firefox outerHTML实现代码
2009/06/04 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
用js实现in_array的方法
2013/11/05 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
2015/12/01 Javascript
js实现搜索框关键字智能匹配代码
2020/03/26 Javascript
JavaScript数组的栈方法与队列方法详解
2016/05/26 Javascript
jquery Ajax实现Select动态添加数据
2017/06/08 jQuery
对layui中的onevent 和event的使用详解
2019/09/06 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
解决Layui数据表格显示无数据提示的问题
2019/11/14 Javascript
Python IDLE清空窗口的实例
2018/06/25 Python
Pyinstaller打包.py生成.exe的方法和报错总结
2019/04/02 Python
详解python 降级到3.6终极解决方案
2020/02/06 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
2020/02/07 Python
Keras实现DenseNet结构操作
2020/07/06 Python
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
美国性感内衣店:Yandy
2018/06/12 全球购物
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
婚礼证婚人证婚词
2014/01/08 职场文书
食品厂厂长岗位职责
2014/01/30 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
信息工作经验交流材料
2014/05/28 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
基督教追悼会答谢词
2015/09/29 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书
Python实现归一化算法详情
2022/03/18 Python
如何利用python创作字符画
2022/06/25 Python