自学内容网 自学内容网

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)!