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




相关推荐
bst@微胖子12 分钟前
Python高级语法之selenium
开发语言·python·selenium
查理零世1 小时前
【蓝桥杯集训·每日一题2025】 AcWing 6118. 蛋糕游戏 python
python·算法·蓝桥杯
魔尔助理顾问2 小时前
一个简洁高效的Flask用户管理示例
后端·python·flask
java1234_小锋2 小时前
一周学会Flask3 Python Web开发-request请求对象与url传参
开发语言·python·flask·flask3
诚信爱国敬业友善6 小时前
常见排序方法的总结归类
开发语言·python·算法
架构默片7 小时前
【JAVA工程师从0开始学AI】,第五步:Python类的“七十二变“——当Java的铠甲遇见Python的液态金属
java·开发语言·python
小哥山水之间8 小时前
在 Python 中操作 Excel 文件
开发语言·python·excel
wang_yb9 小时前
『Python底层原理』--CPython的变量实现机制
python·databook
databook9 小时前
『Python底层原理』--CPython的变量实现机制
后端·python
ww1800010 小时前
多目标鲸鱼优化算法-NSWOA-可用于(机器人轨迹跟踪控制/柔性作业车间调度/无人机三维路径规划)
开发语言·python·算法