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操作MySQL简单实现方法
Jan 26 Python
Python的argparse库使用详解
Oct 09 Python
python: 判断tuple、list、dict是否为空的方法
Oct 22 Python
如何使用Python标准库进行性能测试
Jun 25 Python
Django Docker容器化部署之Django-Docker本地部署
Oct 09 Python
Django REST framework 单元测试实例解析
Nov 07 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
Feb 13 Python
python实现微信打飞机游戏
Mar 24 Python
tensorflow转换ckpt为savermodel模型的实现
May 25 Python
浅谈Python中的模块
Jun 10 Python
Python urllib request模块发送请求实现过程解析
Dec 10 Python
python函数超时自动退出的实操方法
Dec 28 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.ini中文版
2006/10/09 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
通过隐藏option实现select的联动效果
2009/11/10 Javascript
jquery动态改变onclick属性导致失效的问题解决方法
2013/12/04 Javascript
屏蔽IE弹出"您查看的网页正在试图关闭窗口,是否关闭此窗口"的方法
2013/12/31 Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
2015/10/23 Javascript
jQuery选择器实例应用
2017/01/05 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
基于JavaScript实现移动端无限加载分页
2017/03/27 Javascript
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
Vue实现图片轮播组件思路及实例解析
2020/05/11 Javascript
ant design vue导航菜单与路由配置操作
2020/10/28 Javascript
[01:02:17]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG
2014/05/26 DOTA
python的常见命令注入威胁
2013/02/18 Python
python类参数self使用示例
2014/02/17 Python
python黑魔法之参数传递
2016/02/12 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
2018/07/06 Python
Pandas之MultiIndex对象的示例详解
2019/06/25 Python
Django上使用数据可视化利器Bokeh解析
2019/07/31 Python
python logging添加filter教程
2019/12/24 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
什么是python类属性
2020/06/10 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
九年级物理教学反思
2014/01/29 职场文书
高中军训感言500字
2014/02/24 职场文书
科研课题实施方案
2014/03/18 职场文书
2014年党员公开承诺践诺书
2014/03/25 职场文书
幼儿园秋季开学寄语
2014/08/02 职场文书
环境卫生倡议书
2014/08/29 职场文书
拾金不昧表扬信
2015/01/16 职场文书
离婚起诉书范本
2015/05/18 职场文书
教师听课学习心得体会
2016/01/15 职场文书