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选择排序、冒泡排序、合并排序代码实例
Apr 10 Python
python删除列表中重复记录的方法
Apr 28 Python
python判断图片宽度和高度后删除图片的方法
May 22 Python
Python中的CSV文件使用"with"语句的方式详解
Oct 16 Python
Python实现繁?转为简体的方法示例
Dec 18 Python
python添加模块搜索路径和包的导入方法
Jan 19 Python
Python基础之条件控制操作示例【if语句】
Mar 23 Python
实现Python与STM32通信方式
Dec 18 Python
Pytorch 实现权重初始化
Dec 31 Python
解决更改AUTH_USER_MODEL后出现的问题
May 14 Python
Python 通过正则表达式快速获取电影的下载地址
Aug 17 Python
浅谈Python中的函数(def)及参数传递操作
May 25 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制作静态网站的模板框架(一)
2006/10/09 PHP
php minixml详解
2008/07/19 PHP
PHP中集成PayPal标准支付的实现方法分享
2012/02/06 PHP
一个简单的弹性返回顶部JS代码实现介绍
2013/06/09 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
JS中操作JSON总结
2020/12/06 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
jQuery实现鼠标点击弹出渐变层的方法
2015/07/09 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
Angular 4.X开发实践中的踩坑小结
2017/07/04 Javascript
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
2018/08/22 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
详解如何使用微信小程序云函数发送短信验证码
2019/03/13 Javascript
微信小程序 setData 对 data数据影响问题
2019/04/18 Javascript
vue使用高德地图根据坐标定位点的实现代码
2019/08/22 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
[55:04]海涛DOTA2死魂复燃6.82版本介绍
2014/09/28 DOTA
[01:31:03]DOTA2完美盛典全回顾 见证十五项大奖花落谁家
2017/11/28 DOTA
python异步存储数据详解
2019/03/19 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
2019/06/27 Python
python的scipy实现插值的示例代码
2019/11/12 Python
Python headers请求头如何实现快速添加
2020/11/03 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
全球性的在线购物网站:Zapals
2017/03/22 全球购物
关于礼仪的演讲稿
2014/01/04 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
基层党支部整改方案
2014/10/25 职场文书
培训通知
2015/04/17 职场文书
2015年车间管理工作总结
2015/07/23 职场文书
2016年习总书记讲话学习心得体会
2016/01/20 职场文书
muduo TcpServer模块源码分析
2022/04/26 Redis
如何基于python实现单目三维重建详解
2022/06/25 Python