如何用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来满足不同的需求。
