使用python将文件夹压缩成zip包的过程:

先创建空的zip文件,然后遍历读取文件夹中文件,依次塞进zip文件中,即完成压缩。

例如,要将testDir文件夹压缩成test.zip,并存放在同级目录。脚本也放在testDir同级目录。

实现代码如下:

#!/usr/local/bin/python3
import zipfile #引入zip管理模块
import os
import sys #引入sys模块,获取脚本所在目录#定义一个函数,递归读取absDir文件夹中所有文件,并塞进zipFile文件中。参数absDir表示文件夹的绝对路径。
def writeAllFileToZip(absDir,zipFile):for f in os.listdir(absDir):absFile=os.path.join(absDir,f) #子文件的绝对路径if os.path.isdir(absFile): #判断是文件夹,继续深度读取。relFile=absFile[len(os.getcwd())+1:] #改成相对路径,否则解压zip是/User/xxx开头的文件。zipFile.write(relFile) #在zip文件中创建文件夹writeAllFileToZip(absFile,zipFile) #递归操作else: #判断是普通文件,直接写到zip文件中。relFile=absFile[len(os.getcwd())+1:] #改成相对路径zipFile.write(relFile)returnzipFilePath=os.path.join(sys.path[0],"test.zip")
#先定义zip文件绝对路径。sys.path[0]获取的是脚本所在绝对目录。
#因为zip文件存放在脚本同级目录,所以直接拼接得到zip文件的绝对路径。zipFile=zipfile.ZipFile(zipFilePath,"w",zipfile.ZIP_DEFLATED)
#创建空的zip文件(ZipFile类型)。参数w表示写模式。zipfile.ZIP_DEFLATE表示需要压缩,文件会变小。ZIP_STORED是单纯的复制,文件大小没变。absDir=os.path.join(sys.path[0],"testDir")
#要压缩的文件夹绝对路径。writeAllFileToZip(absDir,zipFile) #开始压缩。如果当前工作目录跟脚本所在目录一样,直接运行这个函数。
#执行这条压缩命令前,要保证当前工作目录是脚本所在目录(absDir的父级目录)。否则会报找不到文件的错误。
print("压缩成功")

在shell环境中先cd到脚本所在目录,再运行。

如果当前工作目录是动态的(比如你把脚本拖到终端运行时,工作目录不一定是脚本所在目录),需要动态调整工作目录,修改代码如下:

 cwd=os.getcwd() #获取当前工作目录os.chdir(os.path.dirname(absDir))  #修改当前工作目录,指向要压缩文件夹absDir的父级目录。writeAllFileToZip(absDir,zipFile) #开始压缩os.chdir(cwd) #回到初始工作目录print("压缩成功")

【Python】将文件夹压缩成zip包相关推荐

  1. [python]python实现文件夹压缩成zip包

    转自:https://blog.csdn.net/ooowwq/article/details/125949394 import platform import os import zipfile d ...

  2. 【Auto.js】[zip压缩] 将文件夹压缩成zip包

    将一个文件夹压缩成一个zip包,可应用于项目文件夹打包成zip, 文件夹过滤了目录中的空文件夹,因此,空文件夹不会被打包到zip包中. 由于本人JS知识有限,JAVA也不懂, 导致该函数, 打包大型文 ...

  3. 文件与文件夹压缩成zip包

    文件与文件夹的压缩,其实本质上都是文件的压缩,只是文件夹在压缩时,要判断是否为文件夹,以及文件夹下是否有文件:而同时要处理空文件夹,即空文件夹是否要压缩进zip包中. file.isDirectory ...

  4. java将文件夹压缩成zip java按照目录结构压缩文件夹

    前言 用java将文件夹压缩成zip包,像压缩软件一样,按照目录结构压缩(包含当前文件夹) 网上没有找到太合适的,借鉴其它帖子,自己写了一个 代码 package xin.yangshuai.myba ...

  5. Java实现将文件或者文件夹压缩成zip

    Java实现将文件或者文件夹压缩成zip 最近碰到个需要下载zip压缩包的需求,于是我在网上找了下别人写好的zip工具类.但找了好多篇博客,总是发现有bug.因此就自己来写了个工具类. 这个工具类的功 ...

  6. 将文件夹压缩成zip文件

    一 代码 package ZipFile;import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUt ...

  7. Java将指定文件/文件夹压缩成zip、rar压缩文件

    import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipOutputStream;import java.io.*; ...

  8. java压缩zip文件夹错误_Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题)...

    项目场景: Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题) 问题描述: 最近的项目需要将多级文件夹压缩成zip,网上找了几个工具类,都会报错,所以 ...

  9. Java将网络图片下载至文件夹,然后将文件夹压缩成zip

    思路: 第一步.创建一个文件夹A,用来存图片 第二步.将图片转为图片流写入文件夹A 第三步.将文件夹压缩成ZIP 下面上代码 public class FileZipUtils {public sta ...

最新文章

  1. boost::hana::is_subset用法的测试程序
  2. linux系统 opt扩容,Linux系统扩容根目录磁盘空间的操作方法
  3. Linux 命令之 userconf -- 设置用户账号
  4. layui表格——table.render(options)(转)
  5. java 文件 填空题_Java作业之填空题.doc
  6. Spring框架中级联赋值(外部属性注入)以及内部属性注入
  7. CentOS 谢幕,Anolis OS 带来无限可能的未来
  8. python网络爬虫笔记(九)
  9. linux 内存管理_真香!Linux 原来是这么管理内存的
  10. express 文件服务器,Express搭建一个简单后台服务器
  11. Qtum量子链入驻慢雾区,漏洞赏金计划单项最高奖励达1万美金!
  12. Python实现Diffie-Hellman密钥交换协议
  13. 【运动学】基于matlab斜抛物体斜坡射程【含Matlab源码 980期】
  14. android intent 视频,Android通过发送Intent播放本地视频和网络视频
  15. 2015软件测试视频教程
  16. python分层抽样_抽样方法—分层抽样
  17. Java使用FFmpeg(自定义cmd)系列之MP4 转码 HLS m3u8 AES128 加密
  18. c语言中int sel是什么意思,SEL数据类型,@selector的用法,以及调用SEL
  19. img显示服务器本地图片,img显示服务器图片不显示
  20. Kafka源码研究--Comsumer获取partition下标

热门文章

  1. 硬盘U.2 M.2 SATA SAS区别
  2. 中继链巨头Polkadot终于要落地了,不会还有人不知道吧 | 一文读懂Polkadot(波卡)
  3. ttf类型的字体文件压缩
  4. Kinect与黑客们如何相处
  5. 算是回忆录这样的东西?好吧它是年终总结
  6. 我的世界基岩java材质包下载_我的世界4K光影材质包下载
  7. 卤味店,如何在低线城市挣钱
  8. 4-20mA转换公式
  9. Unity模型动作操作
  10. 三、Docker进阶