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 19 Python
Python内建数据结构详解
Feb 03 Python
Python利用QQ邮箱发送邮件的实现方法(分享)
Jun 09 Python
酷! 程序员用Python带你玩转冲顶大会
Jan 17 Python
Python使用functools实现注解同步方法
Feb 06 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
Sep 04 Python
python opencv判断图像是否为空的实例
Jan 26 Python
将python2.7添加进64位系统的注册表方式
Nov 20 Python
Python中filter与lambda的结合使用详解
Dec 24 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
Feb 03 Python
用python制作个音乐下载器
Jan 30 Python
python自动化办公操作PPT的实现
Feb 05 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
Yii框架表单模型和验证用法
2016/05/20 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
2019/10/12 PHP
小议Function.apply()之二------利用Apply的参数数组化来提高 JavaScript程序性能
2006/11/30 Javascript
js+css实现的简单易用兼容好的分页
2013/12/30 Javascript
JS实现鼠标箭头变成一个燃烧烛光效果的方法
2015/02/28 Javascript
javascript清空table表格的方法
2015/05/14 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
jQuery控制控件文本的长度的操作方法
2016/12/05 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
js纯前端实现腾讯cos文件上传功能的示例代码
2019/05/14 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
详细解读Python中的__init__()方法
2015/05/02 Python
Python文件去除注释的方法
2015/05/25 Python
Python中的列表生成式与生成器学习教程
2016/03/13 Python
Python脚本实现虾米网签到功能
2016/04/12 Python
利用python程序帮大家清理windows垃圾
2017/01/15 Python
Python md5与sha1加密算法用法分析
2017/07/14 Python
基于python实现操作redis及消息队列
2020/08/27 Python
Python 串口通信的实现
2020/09/29 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
成教自我鉴定
2013/10/27 职场文书
电气技术员岗位职责
2013/11/19 职场文书
农民入党思想汇报
2014/01/03 职场文书
学生会主席就职演讲稿
2014/01/14 职场文书
读书活动实施方案
2014/03/10 职场文书
外联部演讲稿
2014/05/24 职场文书
聚众斗殴罪辩护词
2015/05/21 职场文书
2015年外贸业务员工作总结范文
2015/05/23 职场文书
中考百日冲刺决心书
2015/09/22 职场文书
2015年街道办事处团委工作总结
2015/10/14 职场文书
golang json数组拼接的实例
2021/04/28 Golang
python数字转对应中文的方法总结
2021/08/02 Python
使用Bandicam录制鼠标指针并附带点击声音,还可以添加点击动画效果
2022/04/11 数码科技