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

Python实现gzip压缩和解压缩功能的方法介绍

发布时间:2023-12-11 06:53:02

gzip是一种数据压缩算法,能够将文件或者数据流进行压缩,以减少文件的大小。Python提供了gzip模块,可以用于实现gzip压缩和解压缩功能。

1. gzip压缩功能的实现:

import gzip

def compress_file(input_file, output_file):
    with open(input_file, 'rb') as f_in:
        with gzip.open(output_file, 'wb') as f_out:
            f_out.writelines(f_in)
    print("File compressed successfully.")

# 使用示例
input_file = 'input.txt'
output_file = 'compressed_file.gz'
compress_file(input_file, output_file)

上述代码实现了一个函数compress_file,用于将输入文件进行gzip压缩,生成输出文件。在函数内部,使用open函数以二进制模式打开输入文件,使用gzip.open函数以二进制模式打开输出文件,从而实现对文件的读写操作。f_out.writelines(f_in)语句将输入文件的内容写入到输出文件中,实现了文件的压缩功能。

2. gzip解压缩功能的实现:

import gzip

def decompress_file(input_file, output_file):
    with gzip.open(input_file, 'rb') as f_in:
        with open(output_file, 'wb') as f_out:
            f_out.writelines(f_in)
    print("File decompressed successfully.")

# 使用示例
input_file = 'compressed_file.gz'
output_file = 'decompressed_file.txt'
decompress_file(input_file, output_file)

上述代码实现了一个函数decompress_file,用于将输入文件进行gzip解压缩,生成输出文件。与压缩功能类似,函数内部使用gzip.open函数以二进制模式打开输入文件,使用open函数以二进制模式打开输出文件,然后将输入文件的内容写入到输出文件中,实现了文件的解压缩功能。

3. gzip压缩和解压缩字符串:

import gzip

def compress_string(input_string):
    return gzip.compress(input_string.encode())

def decompress_string(input_string):
    return gzip.decompress(input_string).decode()

# 使用示例
input_string = 'Hello, world!'
compressed_string = compress_string(input_string)
decompressed_string = decompress_string(compressed_string)
print(decompressed_string)

上述代码定义了两个函数compress_stringdecompress_string,分别用于对字符串进行gzip压缩和解压缩。compress_string函数使用gzip.compress方法对输入字符串进行压缩,并且返回压缩后的结果。decompress_string函数使用gzip.decompress方法对输入字符串进行解压缩,并且返回解压缩后的结果。在使用示例中,我们先使用compress_string方法对字符串进行压缩,然后使用decompress_string方法对压缩后的字符串进行解压缩,最后打印出解压缩后的结果。