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 之编写简单乘法运算题
Feb 27 Python
Python学习之Anaconda的使用与配置方法
Jan 04 Python
Django 路由系统URLconf的使用
Oct 11 Python
python监控进程状态,记录重启时间及进程号的实例
Jul 15 Python
python多线程分块读取文件
Aug 29 Python
python异步编程 使用yield from过程解析
Sep 25 Python
Django继承自带user表并重写的例子
Nov 18 Python
pycharm中import呈现灰色原因的解决方法
Mar 04 Python
Python3利用openpyxl读写Excel文件的方法实例
Feb 03 Python
python常量折叠基础知识点讲解
Feb 28 Python
tensorflow中的梯度求解及梯度裁剪操作
May 26 Python
pandas中对文本类型数据的处理小结
Nov 01 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生成不同颜色、不同大小的tag标签函数
2013/09/23 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
2016/11/28 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
2017/01/19 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
2017/06/06 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
JS操作JSON要领详细总结
2013/08/25 Javascript
js中一维数组和二位数组中的几个问题示例说明
2014/07/17 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
2014/11/26 Javascript
jQuery对象与DOM对象之间的相互转换
2015/03/03 Javascript
javascript实现checkbox全选的代码
2015/04/30 Javascript
JavaScript中计算网页中某个元素的位置
2015/06/10 Javascript
基于node实现websocket协议
2016/04/25 Javascript
AngularJS入门教程之路由与多视图详解
2016/08/19 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
2017/04/21 Javascript
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
jQuery阻止事件冒泡实例分析
2018/07/03 jQuery
解决vue 中 echart 在子组件中只显示一次的问题
2018/08/07 Javascript
Vue props 单向数据流的实现
2018/11/06 Javascript
react 中父组件与子组件双向绑定问题
2019/05/20 Javascript
Python实现的飞速中文网小说下载脚本
2015/04/23 Python
Python安装第三方库的3种方法
2015/06/21 Python
用ReactJS和Python的Flask框架编写留言板的代码示例
2015/12/19 Python
关于Python 3中print函数的换行详解
2017/08/08 Python
解决python中 f.write写入中文出错的问题
2018/10/31 Python
Pandas 缺失数据处理的实现
2019/11/04 Python
pandas-resample按时间聚合实例
2019/12/27 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
2020/02/06 Python
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
解释一下抽象方法和抽象类
2016/08/27 面试题
大学生的创业计划书就该这么写
2014/01/30 职场文书
健康家庭事迹材料
2014/05/02 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
初三数学教学反思
2016/02/17 职场文书
Nginx反向代理配置的全过程记录
2021/06/22 Servers