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

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

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


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 文件。

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


在这里插入图片描述


在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/674920.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言Prim算法和Prim-Alternat找最小生成树

文章目录 1、用prim算法求最小生成树C语言Prim算法实现 2、用Prim-Alternate算法求最小生成树3、C语言Prim-Alternate算法实现 1、用prim算法求最小生成树 绿色线会标记选过的边 从v1当作起始点开始,可选择: (v1,v2)权值为6 (v1,v3)权值为3 &…

I P协议

IPv4首部 4个字节的32 bit值以下面的次序传输:首先是 0~7 bit,其次8~15 bit,然后1 6~23 bit,最后是24~31 bit。这种传输次序称作 big endian字节序。由于TCP/IP首部中所有的二进制整数在网络中传…

抖音直播统计、直播间无人互动直播效果软件--抖音大师!

抖音大师介绍 抖音大师是抖音直播统计、直播间无人互动直播效果软件,通过它,你可以快速添加直播互动效果!软件使用C#开发,无论是内存占用还是执行效果都远比同行的效果高太多!!电脑所需性能大大降低&#x…

Day11:空间转换、动画

目标:使用 3d 空间转换、动画丰富网页元素的呈现方式。 一、空间转换 1、空间转换简介 空间:是从坐标轴角度定义的 X 、Y 和 Z 三条坐标轴构成了一个立体空间,Z 轴位置与视线方向相同空间转换也叫 3D 转换属性:transform 2、平移…

maybaits-plus新增拦截器动态修改sql与pageHelper结合的问题

需求: 对每个sql进行权限控制,判断用户是查询出来的数据 由于涉及到几十个sql的改造,都要增加这个条件,一个个改很麻烦,所以通过增加sql拦截器,给每个sql追加权限条件 以flowMapper.queryOverFlowPage为例&…

node版本的升级和降级

一、问题描述 在开发过程中,我们可能会遇到在A项目中用 node14 版本,而在B项目中要用 node16 版本,从而需要切换不同的 node 版本来开发项目。 二、安装 gnvm 1、在已经安装好 nodejs 的前提下,我们来安装 gnvm &#xf…

Linux[高级管理]——使用源码包编译安装Apache网站

🏡作者主页:点击! 👨‍💻Linux高级管理专栏:点击! ⏰️创作时间:2024年5月31日14点20分 🀄️文章质量:96分 在Linux系统上编译和安装Apache HTTP Server是…

基于Vue3的Uniapp实训项目|一家鲜花店

基于Vue的Uniapp实训指导项目 项目预览: 在这里插入图片描述 pages.json {"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages{"path": "pages/index/index",&…

微信小程序蓝牙连接部分Android14调用wx.setBLEMTU协商低功耗最大传输单元失败解决方案(部分安卓14设置超过23就会报错)

1.解决方案的核心内容:第一次设置失败不要管,在complate函数里面继续往下连接,然后设置一个定时器每1秒钟在重新设置一次,肯定会成功的!!!!!!!&am…

PS系统教程09

修复照片 修饰工具 污点修复画笔工具(J) 主要作用:去除一些污点或者不需要的 【:缩小】:放大 目标:去掉这两个点 修复画笔工具 也就是说我们要有取样点 选择修复画笔工具按住Alt键吸取周边相近颜色松开单机…

手把手教你使用O2OA(翱途v9)开发应用平台(1)-平台初始化

今天我们就来搭建O2OA服务,并初始化基础数据。 服务器安装启动 获取O2OA O2OA平台以及其所有源码,都是可以免费获取的,要获取可运行的O2OA平台,有三种方式: 1、容器化部署 2、从官网下载可运行版本 3、下载源码&…

YOLOv5改进 | 主干网络 | 将主干网络替换为轻量化的ShuffleNetv2【原理 + 完整代码】

💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 目标检测是计算机视觉中一个重要的下游任务。对于边缘盒子的计算平台来说,一个大型模型很难实现实时检测的要求。基于一系列消融…

直流电机工作原理与控制电路解析

工作原理: 洛伦兹力原理: 直流电机中,定子上通电产生磁场,而转子内导体通电后在磁场中受到洛伦兹力的作用,使其产生转动力矩。 转子内的导体通电后会在磁场中受到力的作用,根据洛伦兹力的方向规则&#…

【metricbeat】通过metricbeat采集prometheus指标

通过metricbeat采集prometheus指标 通过beat采集prometheus内的单个指标。 低版本beat只能全量 环境 # 低版本metricbeat只能全量采集 软件版本:metricbeat8.11.1 解压 tar zxvf metricbeat-8.11.1-linux-x86_64.tar.gz -C /usr/local配置 首先,修改…

数据库索引的理解

目录 1.索引是什么,解决了什么问题 2.索引付出了什么代价 3.如何使用sql索引,有何注意事项 普通索引: 唯一索引: 主键索引(Primary Key Index): 删除索引: 创建主键索引的基本语法: 4.索引背后的数据结构 1.索…

Spring Boot 集成 zxing 生成条形码与二维码

前面我们知道了怎么通过 使用 zxing 生成二维码以及条形码, 由于我们现在都是 web 端的项目了,那么我们看下怎么使用 Spring Boot 集成然后返回给前端展示: 工程源码 对应的工程源码我放到了这里:github源码路径,点击…

80V高耐压低静态线性稳压器/LDO,Vout 1v-65v 3.3V及5V方案最佳选择

概述 PC93XX系列专为动力而设计-敏感应用程序。它包括一个精度第二个高压输入级,超低功率 偏置电流分支,并产生超低功率和低压差线性调节器。PC93XX通过输入电压工作VOUT1V至65V,仅消耗1.8μA的静态电流,并提供1%的初始精度和低…

Maven项目打包成jar项目后运行报错误: 找不到或无法加载主类 Main.Main 和 jar中没有主清单属性解决方案

已经用maven工程的package功能进行了打包 找不到或无法加载主类 Main.Main 规定主类 主要在maven的配置文件当中 这边一定要绑定自己的启动类 jar中没有主清单属性 删掉这一行就行哈 正确的插件代码 <plugin><groupId>org.springframework.boot</groupId&…

孩子出生后为什么要做听力筛查?

孩子出生后为什么要做听力筛查&#xff1f; 新生儿听力筛查&#xff0c;就是对所有新生儿在尽早的时间&#xff08;出生48小时后&#xff09;进行系统的听力筛查测试。据相关文献报道&#xff0c;在我国&#xff0c;正常分娩的新生儿听力障碍的发生率约为0.1&#xff5e;0.3%&a…

gomail发送邮件的参数如何设置?如何使用?

gomail发送邮件的认证方式有哪些&#xff1f;怎么设置邮件发信&#xff1f; Gomail是一个常用的Go语言邮件发送库&#xff0c;它提供了简单易用的接口&#xff0c;使得邮件发送变得非常方便。AokSend将详细介绍如何设置gomail发送邮件的参数&#xff0c;帮助开发者更好地理解和…