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多线程ctrl+c退出问题解决方案
Oct 23 Python
python提取内容关键词的方法
Mar 16 Python
用Python实现一个简单的线程池
Apr 07 Python
Python实现matplotlib显示中文的方法详解
Feb 06 Python
Sanic框架安装与简单入门示例
Jul 16 Python
python学生管理系统
Jan 30 Python
Python3使用Matplotlib 绘制精美的数学函数图形
Apr 11 Python
python图形绘制奥运五环实例讲解
Sep 14 Python
基于python实现学生信息管理系统
Nov 22 Python
Python使用xpath实现图片爬取
Sep 16 Python
Python xlrd/xlwt 创建excel文件及常用操作
Sep 24 Python
python在linux环境下安装skimage的示例代码
Oct 14 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使用smtp发送支持附件的邮件示例
2014/04/13 PHP
js AspxButton的客户端操作
2009/06/26 Javascript
jquery实现的网页自动播放声音
2014/04/30 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
2015/07/06 Javascript
jQuery中inArray方法注意事项分析
2016/01/25 Javascript
Javascript实现苹果悬浮虚拟按钮
2016/04/10 Javascript
关于input全选反选恶心的异常情况
2016/07/24 Javascript
微信小程序 video组件详解
2016/10/25 Javascript
vue复合组件实现注册表单功能
2017/11/06 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
js函数柯里化的方法和作用实例分析
2020/04/11 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
python中文编码问题小结
2014/09/28 Python
python 接口测试response返回数据对比的方法
2018/02/11 Python
python获取代码运行时间的实例代码
2018/06/11 Python
python3.6.3转化为win-exe文件发布的方法
2018/10/31 Python
解决pycharm中opencv-python导入cv2后无法自动补全的问题(不用作任何文件上的修改)
2020/03/05 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
使用keras实现Precise, Recall, F1-socre方式
2020/06/15 Python
django美化后台django-suit的安装配置操作
2020/07/12 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
斯洛伐克最大的婴儿食品和用品网上商店:Feedo.sk
2020/12/21 全球购物
英文商务邀请信
2014/01/22 职场文书
优秀毕业生事迹材料
2014/02/12 职场文书
cf战队收人广告词
2014/03/14 职场文书
中学生英语演讲稿
2014/04/26 职场文书
本科毕业生自荐信
2014/05/26 职场文书
化学教育专业自荐信
2014/07/04 职场文书
党员自我剖析材料(群众路线)
2014/10/06 职场文书
个园导游词
2015/02/04 职场文书
车间质检员岗位职责
2015/04/08 职场文书
2015年医院保卫科工作总结
2015/07/23 职场文书
初三数学教学反思
2016/02/17 职场文书
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle