Python实现压缩文件夹与解压缩zip文件的方法


Posted in Python onSeptember 01, 2018

本文实例讲述了Python实现压缩文件夹与解压缩zip文件的方法。分享给大家供大家参考,具体如下:

直接上代码

#coding=utf-8
#甄码农python代码
#使用zipfile做目录压缩,解压缩功能
import os,os.path
import zipfile
def zip_dir(dirname,zipfilename):
  filelist = []
  if os.path.isfile(dirname):
    filelist.append(dirname)
  else :
    for root, dirs, files in os.walk(dirname):
      for name in files:
        filelist.append(os.path.join(root, name))
  zf = zipfile.ZipFile(zipfilename, "w", zipfile.zlib.DEFLATED)
  for tar in filelist:
    arcname = tar[len(dirname):]
    #print arcname
    zf.write(tar,arcname)
  zf.close()
def unzip_file(zipfilename, unziptodir):
  if not os.path.exists(unziptodir): os.mkdir(unziptodir, 0777)
  zfobj = zipfile.ZipFile(zipfilename)
  for name in zfobj.namelist():
    name = name.replace('\\','/')
    if name.endswith('/'):
      os.mkdir(os.path.join(unziptodir, name))
    else:
      ext_filename = os.path.join(unziptodir, name)
      ext_dir= os.path.dirname(ext_filename)
      if not os.path.exists(ext_dir) : os.mkdir(ext_dir,0777)
      outfile = open(ext_filename, 'wb')
      outfile.write(zfobj.read(name))
      outfile.close()
if __name__ == '__main__':
  zip_dir(r'E:/python/learning',r'E:/python/learning/zip.zip')
  unzip_file(r'E:/python/learning/zip.zip',r'E:/python/learning2')

运行后在E:/python/learning目录下生成zip.zip压缩文件,同时在E:/python目录下解压缩zip.zip文件到learning2目录。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python json模块使用实例
Apr 11 Python
python 类详解及简单实例
Mar 24 Python
安装python3的时候就是输入python3死活没有反应的解决方法
Jan 24 Python
python pandas 对series和dataframe的重置索引reindex方法
Jun 07 Python
python数据处理 根据颜色对图片进行分类的方法
Dec 08 Python
对python字典过滤条件的实例详解
Jan 22 Python
Python爬虫——爬取豆瓣电影Top250代码实例
Apr 17 Python
python3.7 sys模块的具体使用
Jul 22 Python
Python Web框架之Django框架Form组件用法详解
Aug 16 Python
Python合并2个字典成1个新字典的方法(9种)
Dec 19 Python
python利用opencv保存、播放视频
Nov 02 Python
Python几种酷炫的进度条的方式
Apr 11 Python
Python pymongo模块常用操作分析
Sep 01 #Python
Python实现提取XML内容并保存到Excel中的方法
Sep 01 #Python
python使用webdriver爬取微信公众号
Aug 31 #Python
python爬取微信公众号文章
Aug 31 #Python
Python单向链表和双向链表原理与用法实例详解
Aug 31 #Python
Python使用Flask-SQLAlchemy连接数据库操作示例
Aug 31 #Python
浅谈Python traceback的优雅处理
Aug 31 #Python
You might like
php中convert_uuencode()与convert_uuencode函数用法实例
2014/11/22 PHP
PHP内核探索之变量
2015/12/22 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
JavaScript动态调整TextArea高度的代码
2010/12/28 Javascript
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
2013/01/29 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
Node.js中HTTP模块与事件模块详解
2014/11/14 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
2015/08/10 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
Vue实现自带的过滤器实例
2017/03/09 Javascript
JS 实现banner图片轮播效果(鼠标事件)
2017/08/04 Javascript
vue 组件高级用法实例详解
2018/04/11 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
angular6的table组件开发的实现示例
2018/12/26 Javascript
Vue组件通信入门之Provide和Inject机制
2019/12/29 Javascript
[47:26]完美世界DOTA2联赛 LBZS vs Forest 第二场 11.07
2020/11/09 DOTA
python求列表交集的方法汇总
2014/11/10 Python
分享几道你可能遇到的python面试题
2017/07/24 Python
Python 内置函数memoryview(obj)的具体用法
2017/11/23 Python
Python简单I/O操作示例
2019/03/18 Python
Python Numpy数组扩展repeat和tile使用实例解析
2019/12/09 Python
Python二次规划和线性规划使用实例
2019/12/09 Python
Python MySQL 日期时间格式化作为参数的操作
2020/03/02 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
美国女孩服装购物网站:Justice
2017/03/04 全球购物
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
精伦电子Java笔试题
2013/01/16 面试题
成品仓管员岗位职责
2013/12/11 职场文书
三八红旗集体先进事迹材料
2014/05/22 职场文书
会议接待欢迎标语
2014/10/08 职场文书
解除劳动关系协议书2篇
2014/11/28 职场文书
优秀校长事迹材料
2014/12/24 职场文书
优秀工作者事迹材料
2014/12/26 职场文书
一次SQL如何查重及去重的实战记录
2022/03/13 MySQL