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 的作用吧. 创建 ...
随机推荐
- Google reCAPTCHA 2 : Protect your site from spam and abuse & Google reCAPTCHA 2官方教程
1
- Google & Chrome console & text adventure game
Google & Chrome console & text adventure game Google's text adventure game https://www.googl ...
- chrome devtools dark mode
chrome devtools dark mode default dark mode https://medium.com/@eshwaren/dark-theme-for-chrome-devel ...
- nasm astrncat_s函数 x86
xxx.asm: %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 %define p4 ebp+20 section .text global ...
- 在.NET中使用Apache Kafka(一)
曾经在你的应用程序中使用过异步处理吗?在处理不需要立即执行的任务时,异步代码似乎是不可避免的.Apache Kafka是最常用和最健壮的开源事件流平台之一.许多公司和开发者利用它的强大功能来创建高性 ...
- 新手不能忽视的MFC编程之CString
首发文章 | 公众号:lunvey 作为一个新手,刚接触C++没多久.赶鸭子上架完成项目,鉴于之前有几年编程基础,所以很快就接触到了界面开发,由于用的是VC++6.0,所以自然而然就将MFC作为图形界 ...
- Eclipse和MyEclipse光标变成黑色块解决办法
今天偶然发现了一个小技巧,O(∩_∩)O~暂且可以这样说吧,我认为喽. 以前经常在编写程序是不知到碰到键盘上的那个键了,或是那几个组合键了,使得Eclipse里的代码光标变成一个黑色块:在这个状态下, ...
- 微信小程序:快速新增页面和组件的方法
一.快速新增页面的方法: 1.在vscode中的app.json文件中的pages数组的第一行新增一个路径,如: 2.在微信开发者工具中的app.json中的新增一个空格,然后保存,就会生成一个新的页 ...
- TKMybatis
TKMybatis与Mybatis-plus都是mybatis的扩展,有相同的地方,也有不同的地方. 1.导入坐标 <!--mybatis依赖--> <dependency> ...
- pwn篇:攻防世界进阶welpwn,LibcSearcher使用
攻防世界welpwn (搬运一篇自己在CSDN写的帖子) 链接:https://blog.csdn.net/weixin_44644249/article/details/113781356 这题主要 ...