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 contextlib模块使用示例
Feb 18 Python
python 读取竖线分隔符的文本方法
Dec 20 Python
使用Django连接Mysql数据库步骤
Jan 15 Python
PyTorch中的padding(边缘填充)操作方式
Jan 03 Python
对Tensorflow中Device实例的生成和管理详解
Feb 04 Python
基于Tensorflow:CPU性能分析
Feb 10 Python
解决paramiko执行命令超时的问题
Apr 16 Python
使用openCV去除文字中乱入的线条实例
Jun 02 Python
UI自动化定位常用实现方法代码示例
Oct 27 Python
python 发送邮件的四种方法汇总
Dec 02 Python
python实现模拟器爬取抖音评论数据的示例代码
Jan 06 Python
Python基础之元组与文件知识总结
May 19 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操作xml代码
2010/06/17 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
2014/11/18 PHP
PHP面向对象之后期静态绑定功能介绍
2015/05/18 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
php版微信公众平台之微信网页登陆授权示例
2016/09/23 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
Discuz不使用插件实现简单的打赏功能
2019/03/21 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
屏蔽IE弹出"您查看的网页正在试图关闭窗口,是否关闭此窗口"的方法
2013/12/31 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
JavaScript Array对象扩展indexOf()方法
2014/05/09 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
javascript数据结构与算法之检索算法
2015/04/04 Javascript
jquery实现弹出层效果实例
2015/05/19 Javascript
JS中的三个循环小结
2017/06/20 Javascript
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
Angular数据绑定机制原理
2018/04/17 Javascript
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
2020/09/04 Javascript
[01:00:59]VP VS VG Supermajor小组赛胜者组第二轮 BO3第二场 6.2
2018/06/03 DOTA
[48:32]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python构建自定义回调函数详解
2017/06/20 Python
python利用urllib和urllib2访问http的GET/POST详解
2017/09/27 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
公司营业员的自我评价
2014/03/04 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
武夷山导游词
2015/02/03 职场文书
干部考核工作总结
2015/08/12 职场文书
小学中队委竞选稿
2015/11/20 职场文书
机关干部作风整顿心得体会
2016/01/22 职场文书
小学三年级数学教学反思
2016/02/16 职场文书