4.21 Python实现将文件夹中的文件压缩

Python实现将文件夹中的文件压缩

可以使用 Python 的 shutil 和 os 模块来将文件夹 C:\Users\15640\Desktop\git\abc 中的所有文件打包成一个名为 abc.zip 的压缩包。


python 复制代码
import shutil
import os

# 定义文件夹路径和压缩包名称
folder_path = r'C:\Users\15640\Desktop\git\abc'
zip_name = os.path.basename(folder_path)  # 使用文件夹名作为压缩包名
zip_path = os.path.join(os.path.dirname(folder_path), zip_name)  # 压缩包的完整路径,不含扩展名

# 创建压缩包
shutil.make_archive(zip_path, 'zip', folder_path)

print(f'{zip_name}.zip 已经创建在 {os.path.dirname(folder_path)}')



这个脚本做了以下几件事:

  1. 导入 shutil 和 os 模块。
  2. 定义文件夹路径 folder_path 和压缩包名称 zip_name。
  3. 使用 os.path.basename 从文件夹路径中提取文件夹名,并将其用作压缩包名。
  4. 使用 shutil.make_archive 创建一个以 zip_path 命名的压缩包,'zip' 参数指定压缩包格式为 zip,folder_path 参数指定要压缩的文件夹。
  5. 打印一条消息,告知用户压缩包已创建及其所在位置。

运行这个脚本后,您将在 C:\Users\15640\Desktop\git 文件夹中找到一个名为 abc.zip 的压缩包,其中包含 abc 文件夹中的所有文件。




除了使用 shutil 模块,还可以使用 zipfile 模块来实现将文件夹压缩成 ZIP 文件。

python 复制代码
import zipfile
import os


def zip_folder(folder_path, output_path):
    with zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
        for root, dirs, files in os.walk(folder_path):
            for file in files:
                file_path = os.path.join(root, file)
                arcname = os.path.relpath(file_path, start=folder_path)
                zipf.write(file_path, arcname)


# 定义文件夹路径和压缩包名称
folder_path = r'C:\Users\15640\Desktop\git\abc'
zip_name = os.path.basename(folder_path) + '.zip'  # 使用文件夹名作为压缩包名
zip_path = os.path.join(os.path.dirname(folder_path), zip_name)  # 压缩包的完整路径

# 调用函数创建压缩包
zip_folder(folder_path, zip_path)

print(f'{zip_name} 已经创建在 {os.path.dirname(folder_path)}')


这个脚本实现以下功能:

  1. 导入 zipfile 和 os 模块。
  2. 定义 zip_folder 函数,该函数接受要压缩的文件夹路径和输出的压缩包路径。
  3. 使用 os.walk 遍历文件夹,获取所有文件的路径。
  4. 将每个文件添加到 ZIP 文件中,使用 os.path.relpath 确保在 ZIP 文件中保留文件的相对路径。
  5. 定义文件夹路径 folder_path 和压缩包名称 zip_name。
  6. 调用 zip_folder 函数创建压缩包。
  7. 打印一条消息,告知用户压缩包已创建及其所在位置。

运行这个脚本后,您将在 C:\Users\15640\Desktop\git 文件夹中找到一个名为 abc.zip 的压缩包,其中包含 abc 文件夹中的所有文件。




相关推荐
数据智能老司机2 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机3 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机3 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机3 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i3 小时前
drf初步梳理
python·django
每日AI新事件3 小时前
python的异步函数
python
这里有鱼汤4 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python
databook13 小时前
Manim实现脉冲闪烁特效
后端·python·动效
程序设计实验室14 小时前
2025年了,在 Django 之外,Python Web 框架还能怎么选?
python
倔强青铜三15 小时前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试