python getopt模块使用实例解析


Posted in Python onDecember 18, 2019

这篇文章主要介绍了python getopt模块使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

官方介绍地址: https://docs.python.org/3.1/library/getopt.html

实用方向:

处理命令行参数的一个方法,简单好用。

方法:

getopt模块总共有2个函数,分别为:

  • getopt.getopt
  • getopt.gnu_getopt

简单使用:

getopt这个函数常用,简单看一下这个函数的使用:

getopt.getopt(args, shortopts, longopts=[])

看这几个参数,

args为:脚本接受的参数,传入为list类型,此处与sys.argv连并使用

shortopts:短参数。就是参考:python3 test.py -v ,这个-v就是需要用到的短参数。

longopts=[]:长参数。就是参考:python3 test.py --v,两个-的就是需要用到的长参数。

先简单有一个印象。

那后面需要用到的参数怎么传入,怎么处理呢?

参数处理:

import sys
import getopt

opts = getopt.getopt(sys.argv[1:],"-h",["help"])
print(opts)

我们在命令行跑一下:

GL$python3 111.py --help
([('--help', '')], [])

GL$python3 111.py -h 
([('-h', '')], [])

打印了如上的内容,我们依次看一下

1、我们为什么要用sys.argv[1:]呢?是因为第0个是函数本身,所以接受除本身之外的所以参数

2、返回的是一个tuple,第一个list我们可以理解是传入的--h,加到了一个list里,第二个list则是-h后面加的参数,这里没有加,所以为空

下面来实践一下:

import getopt
import sys

opts,args = getopt.getopt(sys.argv[1:],'-h-w:-v',['help','version'])
for opt_name,opt_value in opts:

  if opt_name in ('-h','--help'):
    print(opt_name,"this is help")
    exit()

  if opt_name == '-w':
    print("-w:",opt_value)
    exit()

  if opt_name in ('-v','--version'):

    print('version:0.01')
    exit()

运行起来看看:

GL$python3 111.py -w 123-w: 123GL$python3 111.py -h
-h this is help
GL$python3 111.py -v
version:0.01GL$python3 111.py --help
--help this is help

由上,又出现了个新东西,shortopts里面怎么多了个冒号呢??那个是干啥的?

其实,从上面的例子也可以简单看出来,加冒号意思就是-w后面要加参数,不加冒号就不用加参数,longopts也是一样,冒号用等号代替。

好,这里都已经有些了解了。那么后面的args,是干啥的呀。还有opts又是干啥的呀。

opts 就是分析出的格式信息。args 为不属于格式信息的剩余的命令行参数。

opts 是一个两元组的列表。(选项串, 附加参数) 。如果没有则为空。

下面看例子:

我们在最开头打印args,也就是加一行 print(args),我就不贴代码了。

运行起来:

GL$python3 111.py --help ssss
['ssss']
--help this is help/GL$python3 111.py -w 123 123
['123']
-w: 123

多余的未识别的就成了args里面的内容了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python自动化工具日志查询分析脚本代码实现
Nov 26 Python
python list转dict示例分享
Jan 28 Python
理解生产者消费者模型及在Python编程中的运用实例
Jun 26 Python
python3中zip()函数使用详解
Jun 29 Python
详解Appium+Python之生成html测试报告
Jan 04 Python
python爬虫之验证码篇3-滑动验证码识别技术
Apr 11 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
Jun 17 Python
基于Python实现大文件分割和命名脚本过程解析
Sep 29 Python
Python编写一个验证码图片数据标注GUI程序附源码
Dec 09 Python
Pycharm IDE的安装和使用教程详解
Apr 30 Python
Python判断字符串是否为合法标示符操作
Sep 03 Python
Python jieba结巴分词原理及用法解析
Nov 05 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 #Python
Python Gluon参数和模块命名操作教程
Dec 18 #Python
python turtle 绘制太极图的实例
Dec 18 #Python
Python使用gluon/mxnet模块实现的mnist手写数字识别功能完整示例
Dec 18 #Python
简单了解Python读取大文件代码实例
Dec 18 #Python
python 比较2张图片的相似度的方法示例
Dec 18 #Python
使用Python的Turtle库绘制森林的实例
Dec 18 #Python
You might like
php下关于中英数字混排的字符串分割问题
2010/04/06 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
PHP调用全国天气预报数据接口查询天气示例
2019/02/20 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
2019/02/28 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
js判断背景图片是否加载成功使用img的width实现
2013/05/29 Javascript
JS小功能(列表页面隔行变色)简单实现
2013/11/28 Javascript
javascript处理表单示例(javascript提交表单)
2014/04/28 Javascript
网页运行时提示对象不支持abigimage属性或方法
2014/08/10 Javascript
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
2016/02/14 Javascript
JavaScript数组方法总结分析
2016/05/06 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
TableSort.js表格排序插件使用方法详解
2017/02/10 Javascript
Angularjs的$http异步删除数据详解及实例
2017/07/27 Javascript
js 获取html5的data属性实现方法
2017/07/28 Javascript
vue.js的简单自动求和计算实例
2019/11/08 Javascript
vue vant Area组件使用详解
2019/12/09 Javascript
简单了解three.js 着色器材质
2020/08/03 Javascript
python字典get()方法用法分析
2015/04/17 Python
python 中的list和array的不同之处及转换问题
2018/03/13 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
2020/04/14 Python
CSS3截取字符串实例代码【推荐】
2018/06/07 HTML / CSS
Web时代变迁及html5与html4的区别
2016/01/06 HTML / CSS
H5最强接口之canvas实现动态图形功能
2019/05/31 HTML / CSS
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
汉语言文学毕业生求职信
2013/10/01 职场文书
护理专业自荐信
2013/12/03 职场文书
入党自我评价优缺点
2014/01/25 职场文书
美国留学经济担保书
2014/05/20 职场文书
资源环境与城乡规划管理专业自荐书
2014/09/26 职场文书
搞笑的爱情检讨书
2014/10/01 职场文书
80后创业总结的9条职场用人思想,记得收藏
2019/08/13 职场文书
pandas:get_dummies()与pd.factorize()的用法及区别说明
2021/05/21 Python
nginx内存池源码解析
2021/11/20 Servers