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

在Python中将文件夹中的所有文件打包成一个zip文件的方法

发布时间:2023-12-17 04:19:36

在Python中,我们可以使用zipfile模块来实现将文件夹中的所有文件打包成一个zip文件。

下面是一个示例代码:

import zipfile
import os

def zip_directory(dir_path, zip_path):
    # 创建一个空的zip文件
    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)
                rel_path = os.path.relpath(file_path, dir_path)
                # 将文件添加到zip文件中
                zipf.write(file_path, rel_path)

# 示例用法
if __name__ == "__main__":
    dir_path = '/path/to/directory'  # 要打包的文件夹路径
    zip_path = '/path/to/output.zip'  # 生成的zip文件路径
    zip_directory(dir_path, zip_path)

上面的示例代码中,我们定义了一个zip_directory函数,该函数接受两个参数:dir_path表示要打包的文件夹的路径,zip_path表示生成的zip文件的路径。

在zip_directory函数中,我们先创建了一个空的zip文件,然后使用os.walk函数遍历了文件夹中的所有文件和子文件夹。对于每一个文件,我们将其绝对路径和相对路径拼接起来,然后使用zipf.write方法将文件添加到zip文件中。

在示例用法中,我们可以将要打包的文件夹路径和生成的zip文件路径替换成实际的路径,然后调用zip_directory函数即可将文件夹中的所有文件打包成一个zip文件。

需要注意的是,在上面的示例代码中,我们使用了ZIP_DEFLATED参数来指定压缩算法为deflate。如果不指定该参数,zip文件将以存储方式保存,即不进行压缩。

希望上面的示例代码能够帮助到您。