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 命令行也可以自动补全
Nov 30 Python
10种检测Python程序运行时间、CPU和内存占用的方法
Apr 01 Python
利用Python中unittest实现简单的单元测试实例详解
Jan 09 Python
python数字图像处理之高级形态学处理
Apr 27 Python
使用Python批量修改文件名的代码实例
Jan 24 Python
python3的print()函数的用法图文讲解
Jul 16 Python
python实现图片九宫格分割
Mar 07 Python
python将字典列表导出为Excel文件的方法
Sep 02 Python
使用浏览器访问python写的服务器程序
Oct 10 Python
Python *args和**kwargs用法实例解析
Mar 02 Python
如何用Django处理gzip数据流
Jan 29 Python
Python中常见的反爬机制及其破解方法总结
Jun 10 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获取mysql版本的几种方法小结
2008/03/25 PHP
PHP防止跨域提交表单
2013/11/01 PHP
php实现建立多层级目录的方法
2014/07/19 PHP
对PHP PDO的一些认识小结
2015/01/23 PHP
php实现递归抓取网页类实例
2015/04/03 PHP
一个js封装的不错的选项卡效果代码
2008/02/15 Javascript
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
JS 文件大小判断的实现代码
2010/04/07 Javascript
LazyLoad 延迟加载(按需加载)
2010/05/31 Javascript
javascript数组去掉重复
2011/05/12 Javascript
js实现上传图片之上传前预览图片
2013/03/25 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
2013/05/17 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
2013/12/31 Javascript
AngularJs ng-route路由详解及实例代码
2016/09/14 Javascript
从0开始学Vue
2016/10/27 Javascript
基于JavaScript实现的希尔排序算法分析
2017/04/14 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
2017/05/25 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
python的mysqldb安装步骤详解
2017/08/14 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
python绘制雷达图实例讲解
2021/01/03 Python
微信小程序canvas实现水平、垂直居中效果
2020/02/05 HTML / CSS
Lime Crime官网:美国一家主打梦幻精灵系的彩妆品牌
2019/03/22 全球购物
普通员工辞职信
2014/01/17 职场文书
校庆筹备方案
2014/03/30 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
机关作风整顿个人剖析材料
2014/10/06 职场文书
校长师德表现自我评价
2015/03/04 职场文书
自主招生专家推荐信
2015/03/26 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
卖车协议书范文
2016/03/23 职场文书
2019最新公司租房合同(例文)
2019/07/18 职场文书
vue3 自定义图片放大器效果的示例代码
2022/07/23 Vue.js
戴尔Win11系统no bootable devices found解决教程
2022/09/23 数码科技