当前位置: 代码网 > it编程>前端脚本>Python > Python如何将文件夹中的所有文件打包成Zip压缩包

Python如何将文件夹中的所有文件打包成Zip压缩包

2025年06月27日 Python 我要评论
python 将文件夹中的所有文件打包成zip压缩包正常情况下我们只需要鼠标右键选择压缩工具将文件或文件夹压缩或者解压即可但如果是使用自动化工具过程中需要将某些现有或生成的文件夹打包(或者再继续进行其

python 将文件夹中的所有文件打包成zip压缩包

正常情况下我们只需要鼠标右键选择压缩工具将文件或文件夹压缩或者解压即可

但如果是使用自动化工具过程中需要将某些现有或生成的文件夹打包(或者再继续进行其他操作)时,可通过下列示例代码进行操作

1. 需要引入的库

压缩需要引入的内容如下

# 可选,用于打印时间戳
import datetime
# 系统路径等获取
import os
# 压缩文件的库
import zipfile

2. 创建文件夹

在本地创建一个需要压缩的文件夹,并在其中创建一个子文件夹和一个文件,如下

创建文件夹test1并在其下创建文件夹test1和文件test2.txt

在test1文件夹同级创建test2zip文件夹,用于存放压缩后的zip文件

3. 实例代码

示例代码如下

zip_test.py

import datetime
import os
import zipfile
# 将指定文件夹打包为 zip 文件
def zip_folder(folder_path, output_path):
    # folder_path: 要打包的文件夹路径
    # output_path: 输出的 zip 文件路径
    # 创建 zip 文件
    with zipfile.zipfile(output_path, 'w', zipfile.zip_deflated) as zip_file:
        # 遍历文件夹
        for root, dirs, files in os.walk(folder_path):
            for file in files:
                # 获取文件绝对路径
                file_path = os.path.join(root, file)
                # 获取文件在zip文件中的相对路径
                reletive_path = os.path.relpath(file_path, folder_path)
                # 添加文件到zip文件中
                zip_file.write(file_path, os.path.relpath(file_path, folder_path))

if __name__ == "__main__":
    # 获取当前时间
    datetimestr = datetime.datetime.now().strftime("%y%m%d%h%m%s")
    print(datetimestr)

    # 需要压缩的文件夹路径
    folder_path = r'd:\重载\test1'
    # 输出的zip文件路径
    output_path = r'd:\重载\test2zip\test1.zip'
    zip_folder(folder_path, output_path)

4. 执行代码

在代码文件所在路径位置输入cmd打开命令提示符窗口

输入以下命令并回车

py zip_test.py

执行完成输出如下

5. 查看压缩文件

查看test2zip文件夹下是否已经有生成的zip文件

已经存在,此时右键并解压缩,验证内容是否一致

解压后出现了文件并未出现文件夹,因为上述代码中对空文件夹不做压缩,只有文件夹中有文件才会压缩

到此这篇关于python如何将文件夹中的所有文件打包成zip压缩包的文章就介绍到这了,更多相关python文件打包成zip内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com