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

如何用Python实现文件的压缩和解压缩?

发布时间:2023-07-01 04:14:04

在Python中,我们可以使用内置的zipfile模块来实现文件的压缩和解压缩操作。zipfile模块提供了一种方便的方式来创建、读取和解压ZIP文件。

### 压缩文件

要压缩文件,我们首先需要创建一个ZipFile对象,然后使用该对象的write方法将文件添加到ZIP文件中。下面是一个简单的示例:

import zipfile

def compress_file(filename, zipname):
    with zipfile.ZipFile(zipname, 'w') as zipf:
        zipf.write(filename)

compress_file('test.txt', 'compressed.zip')

上述代码中,compress_file函数接收两个参数,filename是要压缩的文件名,zipname是要生成的ZIP文件名。我们使用with语句来确保文件对象在完成操作后自动关闭。

### 解压缩文件

要解压缩文件,我们同样需要创建一个ZipFile对象,并使用extractall方法解压缩所有文件到指定目录。下面是一个简单的示例:

import zipfile

def extract_files(zipname, output_dir):
    with zipfile.ZipFile(zipname, 'r') as zipf:
        zipf.extractall(output_dir)

extract_files('compressed.zip', 'output_dir')

上述代码中,extract_files函数接收两个参数,zipname是要解压的ZIP文件名,output_dir是解压文件的目标目录。

### 压缩文件夹

类似地,我们也可以使用write方法压缩整个文件夹。下面是一个简单的示例:

import zipfile
import os

def compress_folder(foldername, zipname):
    with zipfile.ZipFile(zipname, 'w') as zipf:
        for root, dirs, files in os.walk(foldername):
            for file in files:
                zipf.write(os.path.join(root, file))

compress_folder('my_folder', 'compressed.zip')

上述代码中,compress_folder函数接收两个参数,foldername是要压缩的文件夹名,zipname是要生成的ZIP文件名。我们使用os.walk函数遍历文件夹中的所有文件,并使用write方法将每个文件都添加到ZIP文件中。

以上就是使用Python实现文件的压缩和解压缩的基本方法。使用zipfile模块可以方便地处理ZIP文件,提供了丰富的API来满足不同的需求。