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

使用Python编写一个简单的文件压缩和解压缩程序

发布时间:2023-12-04 21:06:34

文件压缩和解压缩是计算机中常用的操作之一。Python提供了多种库和方法来实现文件压缩和解压缩的功能。其中,最常用的库是gzipzipfile

### 文件压缩 - gzip库

gzip库提供了对文件进行压缩的功能。下面是一个使用gzip库实现文件压缩的例子:

import gzip

def compress_file(input_file, output_file):
    with open(input_file, 'rb') as file_in:
        with gzip.open(output_file, 'wb') as file_out:
            file_out.writelines(file_in)
    print(f'{input_file} has been compressed to {output_file}')

# 压缩文件
compress_file('input.txt', 'output.txt.gz')

在上述例子中,我们定义了一个名为compress_file的函数,该函数接受两个参数:input_fileoutput_file,分别表示输入文件和输出文件。函数通过打开输入文件并以二进制(rb)模式打开输出文件,并使用gzip.open方法来创建一个gzip.File对象,然后使用writelines方法将输入文件的内容写入到输出文件。最后,我们打印出压缩成功的消息。

### 文件解压缩 - gzip库

如同文件压缩一样,我们可以使用gzip库来进行文件解压缩。下面是一个使用gzip库实现文件解压缩的例子:

import gzip

def decompress_file(input_file, output_file):
    with gzip.open(input_file, 'rb') as file_in:
        with open(output_file, 'wb') as file_out:
            file_out.write(file_in.read())
    print(f'{input_file} has been decompressed to {output_file}')

# 解压缩文件
decompress_file('output.txt.gz', 'input_decompressed.txt')

在上述例子中,我们定义了一个名为decompress_file的函数,该函数接受两个参数:input_fileoutput_file,分别表示输入文件和输出文件。函数通过以二进制(rb)模式打开输入文件并以二进制(wb)模式打开输出文件,并使用write方法将输入文件的内容写入到输出文件。最后,我们打印出解压缩成功的消息。

### 文件压缩和解压缩 - zipfile库

除了gzip库外,Python还提供了zipfile库用于处理zip文件的压缩和解压缩。下面是一个使用zipfile库实现文件压缩和解压缩的例子:

import zipfile

def compress_files(input_files, output_zip):
    with zipfile.ZipFile(output_zip, 'w') as zipf:
        for file in input_files:
            zipf.write(file)
    print(f'{input_files} have been compressed to {output_zip}')

# 压缩文件
compress_files(['input1.txt', 'input2.txt'], 'output.zip')

def decompress_files(input_zip, output_folder):
    with zipfile.ZipFile(input_zip, 'r') as zipf:
        zipf.extractall(output_folder)
    print(f'{input_zip} has been decompressed to {output_folder}')

# 解压缩文件
decompress_files('output.zip', 'output_folder')

在上述例子中,我们定义了两个函数:compress_files用于压缩文件,decompress_files用于解压缩文件。compress_files函数接受两个参数:input_filesoutput_zip,分别表示输入文件列表和输出zip文件。函数通过zipfile.ZipFile创建一个ZipFile对象,并使用write方法将输入文件写入到zip文件。decompress_files函数接受两个参数:input_zipoutput_folder,分别表示输入zip文件和输出文件夹。函数通过zipfile.ZipFile打开输入zip文件,并使用extractall方法将zip文件解压缩到输出文件夹。

以上是使用Python实现文件压缩和解压缩的简单示例。这些示例可以帮助您了解Python中如何使用gzip和zipfile库来进行文件压缩和解压缩的操作。希望对您有所帮助!