【Python】将文件夹压缩成zip包
使用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包相关推荐
- [python]python实现文件夹压缩成zip包
转自:https://blog.csdn.net/ooowwq/article/details/125949394 import platform import os import zipfile d ...
- 【Auto.js】[zip压缩] 将文件夹压缩成zip包
将一个文件夹压缩成一个zip包,可应用于项目文件夹打包成zip, 文件夹过滤了目录中的空文件夹,因此,空文件夹不会被打包到zip包中. 由于本人JS知识有限,JAVA也不懂, 导致该函数, 打包大型文 ...
- 文件与文件夹压缩成zip包
文件与文件夹的压缩,其实本质上都是文件的压缩,只是文件夹在压缩时,要判断是否为文件夹,以及文件夹下是否有文件:而同时要处理空文件夹,即空文件夹是否要压缩进zip包中. file.isDirectory ...
- java将文件夹压缩成zip java按照目录结构压缩文件夹
前言 用java将文件夹压缩成zip包,像压缩软件一样,按照目录结构压缩(包含当前文件夹) 网上没有找到太合适的,借鉴其它帖子,自己写了一个 代码 package xin.yangshuai.myba ...
- Java实现将文件或者文件夹压缩成zip
Java实现将文件或者文件夹压缩成zip 最近碰到个需要下载zip压缩包的需求,于是我在网上找了下别人写好的zip工具类.但找了好多篇博客,总是发现有bug.因此就自己来写了个工具类. 这个工具类的功 ...
- 将文件夹压缩成zip文件
一 代码 package ZipFile;import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUt ...
- Java将指定文件/文件夹压缩成zip、rar压缩文件
import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipOutputStream;import java.io.*; ...
- java压缩zip文件夹错误_Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题)...
项目场景: Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题) 问题描述: 最近的项目需要将多级文件夹压缩成zip,网上找了几个工具类,都会报错,所以 ...
- Java将网络图片下载至文件夹,然后将文件夹压缩成zip
思路: 第一步.创建一个文件夹A,用来存图片 第二步.将图片转为图片流写入文件夹A 第三步.将文件夹压缩成ZIP 下面上代码 public class FileZipUtils {public sta ...
最新文章
- boost::hana::is_subset用法的测试程序
- linux系统 opt扩容,Linux系统扩容根目录磁盘空间的操作方法
- Linux 命令之 userconf -- 设置用户账号
- layui表格——table.render(options)(转)
- java 文件 填空题_Java作业之填空题.doc
- Spring框架中级联赋值(外部属性注入)以及内部属性注入
- CentOS 谢幕,Anolis OS 带来无限可能的未来
- python网络爬虫笔记(九)
- linux 内存管理_真香!Linux 原来是这么管理内存的
- express 文件服务器,Express搭建一个简单后台服务器
- Qtum量子链入驻慢雾区,漏洞赏金计划单项最高奖励达1万美金!
- Python实现Diffie-Hellman密钥交换协议
- 【运动学】基于matlab斜抛物体斜坡射程【含Matlab源码 980期】
- android intent 视频,Android通过发送Intent播放本地视频和网络视频
- 2015软件测试视频教程
- python分层抽样_抽样方法—分层抽样
- Java使用FFmpeg(自定义cmd)系列之MP4 转码 HLS m3u8 AES128 加密
- c语言中int sel是什么意思,SEL数据类型,@selector的用法,以及调用SEL
- img显示服务器本地图片,img显示服务器图片不显示
- Kafka源码研究--Comsumer获取partition下标