python中gzip模块的使用
gzip模块能够直接压缩和解压缩bytes-like类型的数据,同时也能实现对应格式文件的压缩与解压缩
一、数据压缩与解压缩
压缩
函数-gzip.compress(data, compresslevel=_COMPRESS_LEVEL_BEST, mtime=None)
- data:需要压缩的bytes-like类型数据
- compresslevel参数:可选,用数字0-9表示压缩级别,默认最高压缩级别9,0表示不压缩
解压缩
函数-gzip.decompress(data)
示例:
import gzip test_data = b'gzip test data'
gzip_data = gzip.compress(test_data) # 压缩数据
ungz_data = gzip.decompress(gzip_data) #解压缩数据
print(gzip_data) #输出b'\x1f\x8b\x08\x00\xddOa`\x02\xffK\xaf\xca,P(I-.QHI,I\x04\x00*\xfb\x85\x89\x0e\x00\x00\x00'
print(ungz_data) #输出b'gzip test data',和test_data一致
二、文件压缩与解压缩
使用函数-gzip.open( filename, mode="rb", compresslevel=_COMPRESS_LEVEL_BEST, encoding=None, errors=None, newline=None)
- 压缩文件打开后,拥有普通文件对象一样的方法,如read、readline、readlines、write、writelines等。
- 读取内容,可以获得解压缩后的数据
- 写入内容,能够完成对数据的压缩
使用类-gzip.GzipFile()
- 初始化对象的方法__init__:(self, filename=None, mode=None,compresslevel=_COMPRESS_LEVEL_BEST, fileobj=None, mtime=None)
- 用法与gzip.open()类似,可传入文件名或文件对象
示例:
#coding=utf-8
import gzip def gz(filename):
'''压缩文件''' gz_filename = filename + '.tgz' #压缩后文件名
f_ungz = open(filename,'rb') # 打开未压缩文件对象
f_gz = gzip.open(gz_filename,'wb') # 使用open函数创建压缩文件对象
# f_gz = gzip.GzipFile(gz_filename,'wb') 使用GzipFile类创建压缩文件对象
f_gz.writelines(f_ungz) #写入压缩内容
f_ungz.close()
f_gz.close() def ungz(gz_filename):
'''解压缩文件''' ungz_filename = gz_filename.replace('.tgz','').replace('.tar.gz','')# 解压缩后文件名
f_gz = gzip.GzipFile(gz_filename)#使用GzipFile类创建压缩文件对象
# f_gz = gzip.open(gz_filename) 使用open函数打开压缩文件对象
f_ungz = open(ungz_filename,'wb') #新建未压缩文件对象
f_ungz.writelines(f_gz) #写入解压缩后的文件内容
f_ungz.close()
f_gz.close()
python中gzip模块的使用的更多相关文章
- Python中optionParser模块的使用方法[转]
本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值.分享给大家供大家参考之用.具体分析如下: 一般来说,Python中有两个内 ...
- python中threading模块详解(一)
python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thr ...
- 【转】关于python中re模块split方法的使用
注:最近在研究文本处理,需要用到正则切割文本,所以收索到了这篇文章,很有用,谢谢原作者. 原址:http://blog.sciencenet.cn/blog-314114-775285.html 关于 ...
- Python中的模块介绍和使用
在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一 ...
- python中导入模块的本质, 无法导入手写模块的解决办法
最近身边一些朋友发生在项目当中编写自己模块,导入的时候无法导入的问题. 下面我来分享一下关于python中导入模块的一些基本知识. 1 导入模块时寻找路径 在每一个运行的python程序当中,都维护了 ...
- Python中time模块详解
Python中time模块详解 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块. ...
- Python中collections模块
目录 Python中collections模块 Counter defaultdict OrderedDict namedtuple deque ChainMap Python中collections ...
- Python中pathlib模块
Python中pathlib模块 Path.cwd():返回当前目录的路径 Path.home():返回当前用户的家目录 Path.stat():返回此路径信息 Path.touch():创建文件 P ...
- Python 中包/模块的 `import` 操作
版权声明:博客为作者原创,允许转载,但必须注明原文地址: https://www.cnblogs.com/byronxie/p/10745292.html 用实例来说明 import 的作用吧. 创建 ...
随机推荐
- JavaScript 词法 All In One
JavaScript 词法 All In One JavaScript 词法 这部分描述了JavaScript 的词法(lexical grammar). ECMAScript 源码文本会被从左到右扫 ...
- short URL 短网址实现原理剖析
short URL 短网址实现原理剖析 意义,简短便于分享,避免出现超长 URL 的字符长度限制问题 原理分析, 使用 HashMap 存储对应的映射关系 (长度不超过7的字符串,由大小写字母加数字共 ...
- github & webhooks
github & webhooks git auto commit bash shell script https://developer.github.com/webhooks/ POST ...
- eyes protect app
eyes protect app https://awaremac.com/
- windows10 安装NASM
NASM官网 下载NASM NASM在线HTML文档 下载golink golink文档 NASM教程 in windows x64调用约定 x86调用约定 编码样式约定 在编写nasm时数字默认为1 ...
- vue动态添加当前事件下的class
html部分<div class="star"> <span v-for="(item,index) in 5" @click="c ...
- NGK项目为什么要发币
每个区块链创新应用的出现,基本都发行了自己的数字货币,像比特币,以太坊等.数字货币是区块链的资产,是区块链技术的一个应用,实现了用区块链传递价值的目的.目前市面上的数字货币林林总总几千种,其中公链发行 ...
- 人物传记JULLIAN MURPHY:投资哪家强,区块链必然>股票+房地产
今年上半年在金融股市出现巨大波动的时候,星盟的项目审核经理JULLIAN MURPHY发现了一个有趣的现象:各种熔断和暴跌的背后,特斯拉的股票却从去年年末开始至今已经暴涨了12倍,即便中途有所回落,但 ...
- 在gradle中构建java项目
目录 简介 构建java项目的两大插件 管理依赖 编译代码 管理resource 打包和发布 生成javadoc 简介 之前的文章我们讲到了gradle的基本使用,使用gradle的最终目的就是为了构 ...
- java: 类 RegisterController 是公共的, 应在名为 RegisterController.java 的文
public声明的类名需要和文件名一致,检查一下