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模拟登陆阿里妈妈生成商品推广链接
Apr 03 Python
Python实用日期时间处理方法汇总
May 09 Python
探究Python中isalnum()方法的使用
May 18 Python
python使用matplotlib绘制折线图教程
Feb 08 Python
Python实现的寻找前5个默尼森数算法示例
Mar 25 Python
对python 多线程中的守护线程与join的用法详解
Feb 18 Python
python实现给微信指定好友定时发送消息
Apr 29 Python
Pandas中Series和DataFrame的索引实现
Jun 27 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
May 19 Python
Django model class Meta原理解析
Nov 14 Python
Python 找出英文单词列表(list)中最长单词链
Dec 14 Python
Python移位密码、仿射变换解密实例代码
Jun 27 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
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
如何给phpcms v9增加类似于phpcms 2008中的关键词表
2013/07/01 PHP
php无限分类使用concat如何实现
2015/11/05 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
由JavaScript技术实现的web小游戏(不含网游)
2010/06/12 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
js为空或不是对象问题的快速解决方法
2013/12/11 Javascript
jQuery ready()和onload的加载耗时分析
2016/09/08 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
bootstrap datetimepicker2.3.11时间插件使用
2016/11/19 Javascript
原生JS实现移动端web轮播图详解(结合Tween算法造轮子)
2017/09/10 Javascript
基于DOM节点删除之empty和remove的区别(详解)
2017/09/11 Javascript
Vue中"This dependency was not found"问题的解决方法
2018/06/19 Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
2019/09/06 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
vue实现图书管理系统
2020/12/29 Vue.js
Python脚本实现虾米网签到功能
2016/04/12 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
pytorch: Parameter 的数据结构实例
2019/12/31 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
使用Python提取文本中含有特定字符串的方法示例
2020/12/09 Python
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
C#软件工程师英语面试题
2015/06/07 面试题
《长城和运河》教学反思
2014/04/14 职场文书
政风行风整改报告
2014/11/06 职场文书
幼儿园园长个人总结
2015/03/02 职场文书
护士求职简历自我评价
2015/03/10 职场文书
2015新学期校长寄语(3篇)
2015/03/25 职场文书
财务总监岗位职责范本
2015/04/03 职场文书
房屋维修申请报告
2015/05/18 职场文书
Django 实现jwt认证的示例
2021/04/30 Python
css3应用示例:新增的选择器
2022/03/16 HTML / CSS