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转码问题的解决方法
Oct 07 Python
python实现数组插入新元素的方法
May 22 Python
Python减少循环层次和缩进的技巧分析
Mar 15 Python
Python使用Mechanize模块编写爬虫的要点解析
Mar 31 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
Nov 23 Python
Python操作MongoDB数据库的方法示例
Jan 04 Python
python如何为创建大量实例节省内存
Mar 20 Python
python pygame实现五子棋小游戏
Oct 26 Python
查看jupyter notebook每个单元格运行时间实例
Apr 22 Python
python怎么自定义捕获错误
Jun 29 Python
pytorch加载语音类自定义数据集的方法教程
Nov 10 Python
Python Flask搭建yolov3目标检测系统详解流程
Nov 07 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
星际原理概述
2020/03/04 星际争霸
ftp类(myftp.php)
2006/10/09 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
PHP dirname功能及原理实例解析
2020/10/28 PHP
javascript定时保存表单数据的代码
2011/03/17 Javascript
jQuery bxCarousel实现图片滚动切换效果示例代码
2013/05/15 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
JS对img标签进行优化使用onerror显示默认图像
2014/04/24 Javascript
创建js对象和js类的方法汇总
2014/12/24 Javascript
javascript基础知识分享之类与函数化
2016/02/13 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
ES6 class的应用实例分析
2019/06/27 Javascript
使用typescript快速开发一个cli的实现示例
2020/12/09 Javascript
[01:00:53]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Secret
2018/03/30 DOTA
Python数组遍历的简单实现方法小结
2016/04/27 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
2017/11/09 Python
Python线程同步的实现代码
2018/10/03 Python
值得收藏,Python 开发中的高级技巧
2018/11/23 Python
python函数的万能参数传参详解
2019/07/26 Python
python内置函数sorted()用法深入分析
2019/10/08 Python
如何在python中实现随机选择
2019/11/02 Python
wxPython绘图模块wxPyPlot实现数据可视化
2019/11/19 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
2020/05/21 Python
HTML5之SVG 2D入门3—文本与图像及渲染文本介绍
2013/01/30 HTML / CSS
HTML5新特性之用SVG绘制微信logo
2016/02/03 HTML / CSS
澳大利亚在线床零售商:Bedworks
2020/09/01 全球购物
求高于平均分的学生学号及成绩
2016/09/01 面试题
高一新生军训方案
2014/05/12 职场文书
师范类求职信
2014/06/21 职场文书
实习证明格式范文
2014/10/14 职场文书
优秀班集体申报材料
2014/12/25 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
浙江省杭州市平均工资标准是多少?
2019/07/09 职场文书