python的zipfile实现文件目录解压缩
主要是 解决了压缩目录下 空文件夹 的压缩 和 解压缩问题
压缩文件夹的函数:
# coding:utf-
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[:-]
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的zipfile实现文件目录解压缩的更多相关文章
- 【转】python的zipfile压缩、解压缩
网上搜索了很多关于python的zipfile压缩.解压缩.觉得讲述比较详细,例子也很明了.由于比较懒,就直接复制了. 以下内容大部分转于 http://blog.csdn.net/jgood/art ...
- python中zipfile模块实例化解析
文章内容由--“脚本之家“--提供,在此感谢脚本之家的贡献,该网站网址为:https://www.jb51.net/ 简介: zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是 ...
- Python中zipfile压缩文件模块的使用
目录 zipfile 压缩一个文件 解压文件 高级应用 利用 zipfile 模块破解压缩文件口令:Python脚本破解压缩文件口令 zipfile Python 中 zipfile 模块提供了对 z ...
- Python: 使用zipfile+io模块在内存中进行zip操作
#!/usr/bin/env python #coding=utf-8 ''' 版权所有 (c) 2014 yao_yu (http://blog.csdn.net/yao_yu_126) 本代码采用 ...
- python模块--zipfile文件压缩
zipfile模块是python中一个处理压缩文件的模块,解决了不少我们平常需要处理压缩文件的需求 ,本文主要谈谈zipfile几个常用的用法. 首先我在Windows操作系统中创建如下的文件目录: ...
- python模块 zipfile
zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高的zipfile里有两个非常重要的class, 分别是ZipFile和Zip ...
- python中zipfile文件名编码的问题
在python中编程导入压缩包,利用zipfile包,从zipinfo读取文件名总是出错,创建的文件名是乱码,写入pgsql更是出错. 但在ubuntu下测试却正常,在windows下测试总是失败. ...
- python用zipfile模块打包文件或是目录、解压zip文件实例
#!/usr/bin/env python # -*- coding: utf-8 -*- from zipfile import * import zipfile #解压zip文件 def unzi ...
- python 序列解包(解压缩)
序列解包(解压缩) 所学的解压缩 如果我们给出一个列表,我们需要一次性取出多个值,我们是不是可以用下面的方式实现呢? name_list = ['nick', 'egon', 'jason'] x = ...
随机推荐
- 【python】列出http://www.cnblogs.com/xiandedanteng中所有博文的标题
代码: # 列出http://www.cnblogs.com/xiandedanteng中所有博文的标题 from bs4 import BeautifulSoup import requests u ...
- angularjs中使用$scope.$watch监控对象模型的变化
如果对象模型发生变化时,可以使用$scope.$watch监控变化 <html ng-app="myApp"> <head> <title>an ...
- 在Flex (Flash)中嵌入HTML 代码或页面—Flex IFrame
在flex组件中嵌入html代码,可以利用flex iframe.这个在很多时候会用到的,有时候flex必须得这样做,如果你不这样做还真不行…… flex而且可以和html进行JavaScript交互 ...
- 【转】非教育网中IPv4网络访问IPv6资源
1. 背景知识 随着个人电脑.移动终端.乃至物联网的不断发展,有很大的IP地址需求.由于IPv4协议设计时没有料到日后网络会如此发达,IPv4网络中的IP数量相对今天的需求来说,显得捉襟见肘.加上IP ...
- com.fasterxml.jackson.core.JsonParseException: Unexpected character
com.fasterxml.jackson.core.JsonParseException: Unexpected )): was expecting double-quote to start fi ...
- Python中的迭代器漫谈
转自:http://www.jb51.net/article/60706.htm 熟悉Python的都知道,它没有类似其它语言中的for循环, 只能通过for in的方式进行循环遍历.最典型的应用就是 ...
- 【微信小程序】request请求POST提交数据,记得要加上header
wx.request({ url: '*******', data: { "type":"nearest_village", "district&qu ...
- ceph之查看osd上pg的分布
一.概述 osd上pg的分布决定了数据分布的均匀与否,所以能直观的看到pg到osd的上分布是很有必要的: ceph只身提供了相关的命令: #ceph pg ls-by-osd.{osd_id} #fo ...
- npoi IWorkbook HSSFWorkbook XSSFWorkbook 拥有 IEnumerator GetEnumerator(); 方法 可以遍历workbook 每个元素为每个sheet页
- VS2010/MFC编程入门之四十四:定时器Timer
前面一节鸡啄米讲了CTime类和CTimeSpan类的使用,本节继续讲与时间有关的定时器.定时器并不是一个类,主要考虑到,提起时间的话就不能不说定时器,所以就把它放到CTime和CTimeSpan之后 ...