欢迎访问宙启技术站
智能推送

Python中gzip模块的使用方法详解

发布时间:2023-12-17 01:24:59

gzip 模块是 Python 自带的一个压缩模块,可以实现文件的压缩和解压缩操作。gzip 模块提供了 GzipFile 类,可以直接对文件进行压缩和解压缩操作。

以下是 gzip 模块的使用方法详解,包括创建压缩文件和解压缩文件,代码均为 Python 3.x 版本。

### 1. 创建压缩文件

可以使用 gzip 模块的 GzipFile 类来创建压缩文件。创建 GzipFile 对象时,需要指定打开文件的模式和压缩级别。

以下是一个压缩文件的示例代码:

import gzip

# 打开要被压缩的文件
with open('example.txt', 'rb') as fin:
    # 创建 GzipFile 对象,使用压缩级别为 9
    with gzip.open('example.txt.gz', 'wb', compresslevel=9) as fout:
        # 从输入文件读取数据,并写入压缩文件
        fout.write(fin.read())

在以上示例代码中,首先使用 open() 函数打开要被压缩的文件 example.txt,指定为二进制读模式。然后使用 gzip.open() 函数创建一个 GzipFile 对象,指定要创建的压缩文件名为 example.txt.gz,打开文件模式为二进制写模式,压缩级别为 9。最后使用 write() 方法将读取的数据写入压缩文件中。

执行以上代码后,将会在当前目录下创建一个 example.txt.gz 的压缩文件,该文件包含了被压缩的文件内容。

### 2. 解压缩文件

可以使用 gzip 模块的 GzipFile 类来解压缩文件。创建 GzipFile 对象时,需要指定打开文件的模式和压缩级别。

以下是一个解压缩文件的示例代码:

import gzip

# 打开要被解压缩的文件
with gzip.open('example.txt.gz', 'rb') as fin:
    # 创建一个新文件,用于保存解压缩后的数据
    with open('example_uncompressed.txt', 'wb') as fout:
        # 从压缩文件读取数据,并写入新文件
        fout.write(fin.read())

在以上示例代码中,首先使用 gzip.open() 函数打开要被解压缩的压缩文件 example.txt.gz,指定为二进制读模式。然后使用 open() 函数创建一个新文件 example_uncompressed.txt,指定为二进制写模式。最后使用 write() 方法将从压缩文件中读取的数据写入新文件中。

执行以上代码后,将会在当前目录下创建一个 example_uncompressed.txt 的文件,该文件包含了解压缩后的数据。

总结:gzip 模块提供了 GzipFile 类,可以方便地对文件进行压缩和解压缩操作。创建压缩文件时,需要打开要被压缩的文件,使用 gzip.open() 函数创建 GzipFile 对象,并使用 write() 方法将数据写入压缩文件中。解压缩文件时,使用 gzip.open() 函数打开要被解压缩的压缩文件,使用 open() 函数创建新文件,并使用 write() 方法将数据写入新文件中。