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

在Python中如何gzip压缩和解压缩文件

发布时间:2023-12-11 06:46:46

在Python中,可以使用gzip模块来进行文件的gzip压缩和解压缩操作。gzip模块提供了一个GzipFile类,用于处理gzip文件。

下面是gzip压缩文件的示例代码:

import gzip

# 压缩文件
def compress(file_path):
    with open(file_path, 'rb') as f_in:
        with gzip.open(file_path + '.gz', 'wb') as f_out:
            f_out.writelines(f_in)
    print('文件压缩成功!')

# 调用压缩函数
compress('example.txt')

在上面的代码中,compress函数将example.txt文件进行gzip压缩,并将压缩后的文件保存为example.txt.gz。

下面是gzip解压缩文件的示例代码:

import gzip

# 解压文件
def decompress(file_path):
    with gzip.open(file_path, 'rb') as f_in:
        with open(file_path[:-3], 'wb') as f_out:
            f_out.writelines(f_in)
    print('文件解压缩成功!')

# 调用解压函数
decompress('example.txt.gz')

在上面的代码中,decompress函数将example.txt.gz文件进行gzip解压缩,并将解压后的文件保存为example.txt。

需要注意的是,gzip模块中的open函数可以直接打开gzip文件进行读写操作。对于压缩文件,只需要将打开模式设置为'wb'(写入二进制),写入数据时会自动进行gzip压缩。对于解压缩文件,只需要将打开模式设置为'rb'(读取二进制),读取数据时会自动进行gzip解压缩。

另外,gzip模块还提供了一些其他的函数和方法,如gzip.compress()可以直接将数据压缩为gzip格式,gzip.decompress()可以将gzip格式的数据解压缩为原始数据。在具体使用时可以根据需求选择适合的方法。

此外,还可以使用shutil模块中的gzip.open()函数来进行gzip压缩和解压缩操作。

下面是使用shutil模块进行gzip压缩和解压缩的示例代码:

import shutil

# 压缩文件
def compress(file_path):
    with open(file_path, 'rb') as f_in:
        with gzip.open(file_path + '.gz', 'wb') as f_out:
            shutil.copyfileobj(f_in, f_out)
    print('文件压缩成功!')

# 解压文件
def decompress(file_path):
    with gzip.open(file_path, 'rb') as f_in:
        with open(file_path[:-3], 'wb') as f_out:
            shutil.copyfileobj(f_in, f_out)
    print('文件解压缩成功!')

# 调用压缩函数
compress('example.txt')

# 调用解压函数
decompress('example.txt.gz')

使用shutil模块进行gzip压缩和解压缩与使用gzip模块的GzipFile类的方式类似,只是在复制文件对象时使用了shutil模块中的copyfileobj函数。