Python如何使用内置的zipfile模块来压缩和解压缩文件
在Python中,你可以使用内置的zipfile模块来压缩和解压缩文件。以下是一个简单的例子,说明如何使用这个模块来压缩一个文件或文件夹:
压缩单个文件
python 复制
import zipfile
def zip_file(file_path, zip_path):
with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
zipf.write(file_path)
# 使用函数
zip_file('my_file.txt', 'my_file.zip')
在这个例子中,zip_file函数接受一个文件路径和一个zip文件路径作为参数。它创建一个新的ZipFile对象,使用'w'模式(表示写入)和zipfile.ZIP_DEFLATED压缩方法。然后,它使用write方法将文件添加到zip文件中。
压缩文件夹
压缩文件夹稍微复杂一些,因为你需要递归地遍历文件夹中的所有文件和子文件夹。以下是一个实现这个功能的函数:
python
复制
import os
import zipfile
def zip_directory(dir_path, zip_path):
with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
for root, dirs, files in os.walk(dir_path):
for file in files:
file_path = os.path.join(root, file)
relative_path = os.path.relpath(file_path, dir_path)
zipf.write(file_path, relative_path)
# 使用函数
zip_directory('my_directory', 'my_directory.zip')
在这个例子中,zip_directory函数使用os.walk来遍历文件夹中的所有文件和子文件夹。对于每个文件,它计算文件相对于文件夹根目录的相对路径,然后将文件添加到zip文件中,使用相对路径作为zip文件中的文件名。这样,当你解压缩zip文件时,文件和文件夹的结构将与原始文件夹相同。
原文地址:https://blog.csdn.net/shixuegen/article/details/137520081
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!