Python对GZip文件的支持(gzip)2025年1月5日 | 阅读 7 分钟 引言在本教程中,我们将学习 Python 对 gzip 文件 (gzip) 的支持。GZip 应用程序用于压缩和解压缩文件。它是 GNU 项目的一部分。Python 的 gzip 模块是 GZip 实现的接口。Gzip 文件压缩算法本身基于 Python 的 zlib 模块。Gzip 模块包含 GzipFile 类的内容和方法。它还包含 open()、compress() 和 decompress() 等简单函数。实现压缩和解压缩的最简单方法是使用下面描述的函数。 1. open() 函数open() 函数以二进制或文本格式压缩一个 gzipped 文件,并返回该文件作为一个对象,它可以是物理文件、字符串或字节对象。默认情况下,文件以“rb”格式打开,它读取二进制文件,但此过程的操作模式可以使用下面的其他格式。 此函数还定义了压缩级别,该级别介于 0 到 9 之间。当文件以文本模式打开时,GzipFile 对象将被 Python 中的 TextIOWrapper 对象包装。 2. compress() 函数compress() 函数压缩作为参数传递给它的数据,然后返回压缩后的字节对象。默认压缩级别为 9。 语法 compress() 函数的语法如下所示: 参数 compress() 函数的参数如下所示:
3. decompress() 函数decompress() 函数解压缩字节对象,然后返回原始数据。Python gzip.decompress() 函数可以解压缩多成员 gzip 文件,即多个 gzip 块连接在一起的文件。 语法 decompress() 函数的语法如下所示: 参数 decompress() 函数的参数如下:
Python 中为什么需要 gzip 模块?需要数据压缩。由于每分钟都会创建许多文件,因此通过使用较少原始数据来重新编码和重新排列数据以减小其大小的过程称为数据压缩。该算法有助于找到最佳且有效的方法来减小数据大小,例如使用字典将原始字符串转换为更小的字符串。 数据压缩可将文本文件大小减小到其原始大小的 50%。较大的文件通过 ZIP、RAR、7z 或 MP3 等压缩格式在 Internet 上发送。数据压缩还可以通过减小文件大小来减少传输文件所需的时间,并占用更少的存储空间和内存。 数据压缩具有许多优点,例如减少存储、数据传输时间和通信带宽,最终节省大量成本。到目前为止,数据压缩的唯一缺点是它需要大量资源来扩展大量数据,并且压缩供应商非常重视优化速度和资源使用,以减少繁重压缩工作的影响。 程序代码 在此,我们提供 Python gzip() 模块中 compress() 函数的程序代码。代码如下: 输出 现在我们运行上述代码并从中找到压缩后的字符串。我们获得一个原始字符串,如上所示,并计算其长度。然后,我们使用 Python gzip.compress() 函数来扩展文件大小。当我们计算压缩字符串的长度时,我们会发现它会比原始字符串长,因为数据在压缩过程中被加密,这可以通过 zlib.compress() 函数看到。输出如下: b'Hello! It is original text. Now it will be compressed.' This is a value that represents the length of the original text 54 Here the backend compressed string are looks somethings like this: b'x\x9c\xf3H\xcd\xc9\xc9WT\xf0,Q\xc8,V\xc8/\xcaL\xcf\xccK\xccQ(I\xad(\xd1S\xf0\xcb/W\xc8,Q(\xcf\xcc\xc9QHJUH\xce\xcf-(J-.NM\xd1\x03\x00\x01`\x13\n' The compressed text length is represent by this value: 77 The initial length of the string is 54 and the length after the Python gzip.compress() function is 77 because the string is encrypted in bytes. 程序代码 在此,我们提供 Python gzip() 模块中 decompress() 函数的程序代码。代码如下: 输出 现在我们运行上述代码并从中找到解压缩后的字符串。我们获得一个原始字符串,如上所示,并计算其长度。然后,我们使用 Python gzip.compress() 函数来压缩文件大小。然后,我们使用 Python gzip.decompress() 函数来解压缩压缩后的字符串。我们计算字符串长度,结果与原始长度相同。在压缩过程中,数据被加密,长度增加,如上所示。输出如下: b'Hello! It is original text. Now it will be decompressed.' This is a value that represents the length of the original text 56 The compressed text length is represented by this value: 79 The decompressed text length is represented by this value 56 示例 在此,我们提供了一个通过将压缩数据写入其中来创建 gzip 文件的示例。 这将在当前目录中创建文件“text.txt.gz”。此 gzip 文件包含“text.txt”文件,您可以使用解压缩工具进行检查。以编程方式读取此压缩文件。 将现有文件压缩为 gzip 文件,读取文本,并将其转换为字节数组。在 gzip 文件中,写入此字节数组对象。下面的示例假定文件“z.txt”存在于当前目录中。 在下面的代码中从 gzip 存档中获取未压缩的文件: 上面的代码将在当前目录中创建文件“z1.txt”,其中包含与“z.txt”相同的文件。除了这些基本功能之外,gzip 模块还包括 GzipFile 类,该类定义了 compress() 和 decompress() 方法。此类的构造函数将使用数据、类型和压缩级别参数,这些参数的含义与上面相同。当类型参数指定为“w”或“wb”或“wt”时。GipFile 对象将提供一种保存文件并将其写入 gzip 文件的方式。 这将创建新文件 newtext.txt.gz。您可以使用实用工具解压缩文件,以查看它包含 newtext.txt 文件,该文件包含文本“Python”和“has batteries”。要使用 GzipFile 对象解压缩 gzip 文件,请使用模式参数的“rb”值创建它,并通过 read() 方法读取未压缩的文件。 结论因此,在本教程中,我们学习了 Python 对 gzip 文件 (gzip) 的支持。重新编码和重新排列数据以使其比原始数据小 $(original data) 的过程称为数据压缩。该算法有助于找到减小数据大小的最佳且有效的方法。Python gzip.decompress() 函数解压缩文件并返回压缩文件的字节。Python 的 gzip.decompress() 函数可以解压缩多成员 gzip 文件,即多个 gzip 部分连接在一起。Python gzip.compress() 函数用于压缩文件以减小其大小。返回值是一个字节对象。默认压缩级别为 9。 下一主题Python 文本换行和填充 |
介绍:在本教程中,我们将学习 Python 中的 NumPy squeeze。我们希望删除特定数量变量的大小,因此我们在 NumPy 中使用一个名为“squeeze()”的函数。在这种情况下,我们使用 NumPy 的 squeeze() 函数,它接受一个数组...
5 分钟阅读
简介 一个名为笛卡尔的数学方法,由两个列表组成,可以产生一个时尚的列表,其中包含每个可行的有序对(元组),这些元组来自 2 个输入列表。它经常用于在各种应用程序中探索所有能力细节对,包括作为……
5 分钟阅读
数据分析师和研究人员经常处理各种数据集,其中一些可能包含分类数据。get_dummies() 函数的应用有助于处理这些分类值。本文有助于阐明在 Python 中创建虚拟变量的过程...
阅读 6 分钟
? 简介:在本教程中,我们了解到 Python 字典中的一个键可以包含一个或多个值。字典是 Python 数据结构的表示,可以看作是 C++ 中映射的类似物。它是一个动态数据结构,可以...(此段落未提供完整的英文原文,故翻译不完整)
7 分钟阅读
OpenAI 已经为 ChatGPT API 发布了一个名为 `openai` 的官方 Python 客户端库。这个库提供了一个易于使用的接口,用于与 ChatGPT API 交互并生成文本补全。要使用 `openai` 库,你首先需要安装它。你可以使用...
阅读 13 分钟
在 Python 中,有两种类型的除法运算符 - 常规除法 (/) 和整数除法 (//),每个在处理数字时都有不同的用途。让我们分解一下每个运算符的作用。在 Python 编程中,我们使用两个特殊的除法运算符处理数字计算:常规除法 (/)...
14 分钟阅读
用户生成内容,尤其是在社交媒体和网络平台上的内容急剧增加,使得监控不当或露骨图片变得越来越重要。其中一个问题是识别和筛选裸露或露骨内容,以便为消费者提供一个安全和可接受的环境。Python,凭借其...
阅读 19 分钟
什么是别名?别名是一种改变Python中任何数据(如列表、函数、元组等)名称的方法。当任何变量名已分配给另一个变量时,有必要为数据设置别名。例如,有些变量只是存储...
阅读 3 分钟
简介 数据系统和算法是计算机科学和编程的基本构建模块。它们对于高效解决问题、软件开发和构建强大的程序至关重要。Python 以其简单性和灵活性而闻名,是新手和有经验的程序员都喜欢的语言选择。如果...
阅读 6 分钟
Python 嵌套 if 语句 嵌套 if 语句在 Python 中是一种结构,其中一个语句位于另一个 if 和 else 子句中。这被称为嵌套,并且可以有多层语句,以便程序员能够更有效地评估多个条件...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India