python的zipfile实现文件目录解压缩
2015-02-11 12:13
609 查看
主要是 解决了压缩目录下 空文件夹 的压缩 和 解压缩问题
压缩文件夹的函数:
解压的函数:
调用:
压缩文件夹的函数:
# coding:utf-8 import os import zipfile def zipdir(dirToZip,savePath): if not os.path.isdir(dirToZip): raise Exception,u"zipDir Error,not a dir'%'".format(dirToZip) (saveDir,_)=os.path.split(savePath) if not os.path.isdir(saveDir): os.makedirs(saveDir) zipList = [] for root,dirs,files in os.walk(dirToZip): for fileItem in files: zipList.append(os.path.join(root,fileItem)) for dirItem in dirs: zipList.append(os.path.join(root,dirItem)) zf = zipfile.ZipFile(savePath,'w',zipfile.ZIP_DEFLATED) for tar in zipList: if tar != dirToZip: zf.write(tar,tar.replace(dirToZip,'')) else: zf.write(tar) zf.close()
解压的函数:
def unZipFile(unZipSrc,targeDir): if not os.path.isfile(unZipSrc): raise Exception,u'unZipSrc not exists:{0}'.format(unZipSrc) if not os.path.isdir(targeDir): os.makedirs(targeDir) print(u'开始解压缩文件:{0}'.format(unZipSrc)) unZf = zipfile.ZipFile(unZipSrc,'r') for name in unZf.namelist() : unZfTarge = os.path.join(targeDir,name) if unZfTarge.endswith("/"): #empty dir splitDir = unZfTarge[:-1] if not os.path.exists(splitDir): os.makedirs(splitDir) else: splitDir,_ = os.path.split(targeDir) if not os.path.exists(splitDir): os.makedirs(splitDir) hFile = open(unZfTarge,'wb') hFile.write(unZf.read(name)) hFile.close() print(u'解压缩完毕,目标文件目录:{0}'.format(targeDir)) unZf.close()
调用:
if __name__ == '__main__': dirpath = os.path.abspath(u'.\\new') savepath = os.path.abspath(u'.\\new.zip') # zipdir(dirpath,savepath) unZipFile(savepath,dirpath)
相关文章推荐
- Python之文件与目录操作(os、zipfile、tarfile、shutil)
- python用zipfile模块打包文件或是目录、解压zip文件实例
- python用zipfile模块打包文件或是目录、解压zip文件实例
- (原创)python zipfile实现压缩整个目录和子目录
- 解决python中用zipfile解压缩文件时中文文件名乱码的问题
- python zipfile压缩解压缩目录
- python用zipfile模块打包文件或是目录、解压zip文件实例
- python用zipfile模块打包文件或是目录、解压zip文件实例
- Java实现Zip压缩/解压缩目录中的所有文件
- 用VBScript实现Zip解压缩目录中的所有文件
- Python 解压缩Zip和Rar文件到指定目录
- 在python中使用zipfile压缩文件时层级很多,有很多层目录,但是需要去除这些层级目录
- python基础-文件目录压缩(zipfile模块)
- Python实现 zip解压缩到指定目录
- python-文件,目录,file,xml,dir
- Python中的文件和目录操作实现代码
- python logging 模块之TimedRotatingFileHandler 实现每天一个日志文件
- Python中的文件和目录操作实现代码
- 【原】Python用例:将指定文件或目录打包成zip文件