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 文件夹中的所有文件。




相关推荐
amazinging17 分钟前
北京-4年功能测试2年空窗-报培训班学测开-第四十三天
python·学习
wgyang20161 小时前
我的第一个LangFlow工作流——复读机
python
Zhen (Evan) Wang1 小时前
(豆包)xgb.XGBRegressor 如何进行参数调优
开发语言·python
我爱一条柴ya1 小时前
【AI大模型】线性回归:经典算法的深度解析与实战指南
人工智能·python·算法·ai·ai编程
赶紧去巡山1 小时前
pyhton基础【23】面向对象进阶四
python
旷世奇才李先生2 小时前
PyCharm 安装使用教程
ide·python·pycharm
这里有鱼汤2 小时前
“对象”?对象你个头!——Python世界观彻底崩塌的一天
后端·python
尘浮7282 小时前
60天python训练计划----day59
开发语言·python
wh39332 小时前
使用Python将PDF转换成word、PPT
python·pdf·word
船长@Quant3 小时前
数学视频动画引擎Python库 -- Manim Voiceover 语音服务 Speech Services
python·数学·manim·动画引擎·语音旁白