前言
本文是根据python官方教程中标准库模块的介绍,自己查询资料并整理,编写代码示例做出的学习笔记。
根据模块知识,一次讲解单个或者多个模块的内容。
数据压缩
很多时候我们可以利用的内存有限,时间有限,资源有限,但是又不得不进行一些大量数据的操作时,我们可以通过压缩的方式灵活高效地处理数据存储和传输问题,优化应用性能。
在Python中,通过特定的算法,将原始数据转换成一个更紧凑的形式,这个过程称为压缩;而将压缩后的数据恢复到原始形式的过程则称为解压缩。这里简单了解一些这些模块后,一个个进行学习使用。
- zlib:
介绍:zlib 模块提供了对 zlib 压缩库的接口,支持 gzip 文件格式的压缩和解压缩。
功能:可以用于数据的简单压缩和解压缩,常用于需要快速压缩速度和相对较高压缩率的场合。
常用函数:compress(), decompress(), crc32() 等。 - gzip:
介绍:gzip 模块允许你使用 gzip 文件格式进行压缩和解压缩操作。
功能:提供了文件对象(如 GzipFile)来处理 .gz 文件,可以透明地读写压缩文件,就像它们是普通文件一样。
常用类:GzipFile 类用于创建或读取 gzip 格式的文件。 - bz2:
介绍:此模块提供了对 bzip2 压缩算法的支持。
功能:相较于 zlib,bzip2 提供了更高的压缩比,但压缩速度较慢。适用于需要高压缩比而时间不是关键因素的场景。
常用类:BZ2File 类用于读写 bzip2 格式的文件。 - lzma:
介绍:lzma 模块提供了对 LZMA (Lempel-Ziv-Markov chain Algorithm) 压缩算法的支持,这是 xz 文件格式的基础。
功能:LZMA 提供了非常高的压缩比,特别适合于大文件的压缩。它在解压速度上也表现良好。
常用类:LZMAFile 类用于读写 xz 格式的文件,以及相关的压缩和解压缩函数。
这些模块使得Python能够方便地处理各种常见的压缩格式,满足不同的数据压缩需求。
zlib
zlib模块是Python的标准库之一,它提供了对zlib压缩库的接口,支持DEFLATE压缩算法,这是一种广泛使用的数据压缩算法,也是gzip、zip等文件格式的基础。zlib模块主要用于需要快速压缩速度和相对较高压缩率的场合,比如网络数据传输、文件存储等。
压缩与解压
import zlib
data = b"This is an example of compressed data."
# 压缩
compressed_data = zlib.compress(data)
# 解压
decompressed_data = zlib.decompress(compressed_data)
print(decompressed_data.decode())

通过输出可以看出,字符串压缩再解压后打印,并没有什么影响。
这里单独要讲2个点。
-
字符串前面的b是什么?
这个b表示后面的字符串会被处理成一个字节串。因为compress函数的入参就是一个字节串,直接传入字符串是不行的。为什么字节串可以字符串不行呢?因为zlib这个模块处理的就是原始的二进制数据,而不是文本字符串。字符串在计算机内存中是以特定的字符编码(如UTF-8)表示的,而压缩算法直接作用于这些二进制表示上。
有没有类似的写法呢?这里随便讲几个,以后遇到这种类似的写法可以查查资料学习一下:字符串前的u前缀(Python 2中):在Python 2中,字符串前加u表示创建一个Unicode字符串。例如,u"Hello, World!"。Python 3中默认字符串就是Unicode,因此不再需要u前缀。
字符串前的r前缀:表示创建一个原始字符串(rawstring),其中的转义字符不会被处理。这在编写正则表达式或Windows文件路径时特别有用。例如,r"C:\path\to\file.txt"。

最低0.47元/天 解锁文章
51万+

被折叠的 条评论
为什么被折叠?



