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中动态获取对象的属性和方法的教程
Apr 09 Python
python访问系统环境变量的方法
Apr 29 Python
Python实现简单拆分PDF文件的方法
Jul 30 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
Apr 19 Python
通过Python 获取Android设备信息的轻量级框架
Dec 18 Python
使用Scrapy爬取动态数据
Oct 21 Python
Java Spring项目国际化(i18n)详细方法与实例
Mar 20 Python
python实现一个猜拳游戏
Apr 05 Python
Python读入mnist二进制图像文件并显示实例
Apr 24 Python
python获取整个网页源码的方法
Aug 03 Python
Python基础之元组与文件知识总结
May 19 Python
Python集合的基础操作
Nov 01 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
Centos下升级php5.2到php5.4全记录(编译安装)
2015/04/03 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
js GridView 实现自动计算操作代码
2009/03/25 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
2011/12/12 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
jQuery回到顶部的代码
2016/07/09 Javascript
Google 地图事件实例讲解
2016/08/06 Javascript
利用fecha进行JS日期处理
2016/11/21 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
2017/04/01 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
vue使用element-ui的el-input监听不了回车事件的解决方法
2018/01/12 Javascript
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
深入解读Node.js中的koa源码
2019/06/17 Javascript
Vue.js实现大转盘抽奖总结及实现思路
2019/10/09 Javascript
原生js实现点击轮播切换图片
2020/02/11 Javascript
微信小程序pinker组件使用实现自动相减日期
2020/05/07 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
[02:41]《西雅图我们来了》2015国际邀请赛出征全记录
2015/07/23 DOTA
python将控制台输出保存至文件的方法
2019/01/07 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
基于HTML5的齿轮动画特效
2016/02/29 HTML / CSS
优秀毕业生求职推荐信范文
2013/11/21 职场文书
写给女朋友的检讨书
2014/01/28 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
三下乡个人总结
2015/03/04 职场文书
Vue实现下拉加载更多
2021/05/09 Vue.js
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android