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

Python中的gzip压缩和解压缩教程

发布时间:2023-12-11 06:48:09

压缩和解压缩是在处理文件和数据时常见的任务之一。gzip模块是Python标准库中用于压缩和解压缩文件的模块。本教程将介绍如何使用gzip模块来压缩和解压缩文件,并提供相应的使用示例。

1. 压缩文件

首先,我们需要导入gzip模块。然后,使用gzip.open()函数创建一个压缩文件对象,并指定要压缩的文件名和模式为'wb'(以二进制写模式打开文件)。

import gzip

def compress_file(file_name):
    with open(file_name, 'rb') as file:
        with gzip.open(file_name + '.gz', 'wb') as gzip_file:
            gzip_file.writelines(file)

这段代码会将指定的文件压缩为一个gzip压缩文件。压缩文件的文件名为原文件名加上后缀'.gz'。使用with语句可以保证文件对象在使用完成后能够正确关闭。

2. 解压缩文件

同样,我们需要导入gzip模块,然后使用gzip.open()函数创建一个解压缩文件对象,并指定要解压缩的文件名和模式为'rb'(以二进制读模式打开文件)。

import gzip

def decompress_file(file_name):
    with gzip.open(file_name + '.gz', 'rb') as gzip_file:
        with open(file_name, 'wb') as file:
            file.writelines(gzip_file)

这段代码会将指定的gzip压缩文件解压缩为一个普通文件。解压缩文件的文件名为去掉后缀'.gz'的原文件名。同样使用with语句可以确保文件对象在使用完成后能够正确关闭。

下面是一个完整的示例代码,演示了如何压缩和解压缩文件。

import gzip

def compress_file(file_name):
    with open(file_name, 'rb') as file:
        with gzip.open(file_name + '.gz', 'wb') as gzip_file:
            gzip_file.writelines(file)

def decompress_file(file_name):
    with gzip.open(file_name + '.gz', 'rb') as gzip_file:
        with open(file_name, 'wb') as file:
            file.writelines(gzip_file)

def main():
    compress_file('example.txt')
    decompress_file('example.txt')

if __name__ == '__main__':
    main()

在这个示例代码中,我们先调用compress_file()函数将'example.txt'文件压缩为'example.txt.gz',然后再调用decompress_file()函数将'example.txt.gz'解压缩为'example.txt'。

以上就是使用gzip模块进行文件压缩和解压缩的教程和示例。希望对你有所帮助!