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 scipy的二维图像卷积运算与图像模糊处理操作示例
Sep 06 Python
Python获取统计自己的qq群成员信息的方法
Nov 15 Python
Python 中判断列表是否为空的方法
Nov 24 Python
通过python实现windows桌面截图代码实例
Jan 17 Python
python常用运维脚本实例小结
Feb 14 Python
Matplotlib 绘制饼图解决文字重叠的方法
Jul 24 Python
详解向scrapy中的spider传递参数的几种方法(2种)
Sep 28 Python
calendar在python3时间中常用函数举例详解
Nov 18 Python
python字符串拼接+和join的区别详解
Dec 03 Python
python基于opencv实现人脸识别
Jan 04 Python
2021年值得向Python开发者推荐的VS Code扩展插件
Jan 25 Python
Django 实现jwt认证的示例
Apr 30 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开发过程中常用函数收藏
2009/12/14 PHP
PHP伪静态Rewrite设置之APACHE篇
2014/07/30 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
php实现仿写CodeIgniter的购物车类
2015/07/29 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
Prototype String对象 学习
2009/07/19 Javascript
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
2013/08/23 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
2014/12/14 Javascript
JavaScript获取当前cpu使用率的方法
2015/12/15 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
2015/12/29 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
百度小程序自定义通用toast组件
2019/07/17 Javascript
Python socket网络编程TCP/IP服务器与客户端通信
2017/01/05 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
python爬虫刷访问量 2019 7月
2019/08/01 Python
如何将 awk 脚本移植到 Python
2019/12/09 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
浅析python中的del用法
2020/09/02 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
计算机专业毕业生的自我评价
2013/11/18 职场文书
环境工程专业个人求职信
2013/12/05 职场文书
《凡卡》教学反思
2014/04/09 职场文书
名人演讲稿范文
2014/09/16 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
如何写辞职书
2015/02/26 职场文书
护士自荐信范文
2015/03/25 职场文书
css display table 自适应高度、宽度问题的解决
2021/05/07 HTML / CSS