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中for循环的使用方法
May 14 Python
Python实现的插入排序算法原理与用法实例分析
Nov 22 Python
python绘制多个曲线的折线图
Mar 23 Python
python+splinter自动刷新抢票功能
Sep 25 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
Nov 06 Python
Python Matplotlib实现三维数据的散点图绘制
Mar 19 Python
python过滤中英文标点符号的实例代码
Jul 15 Python
python 实现多线程下载视频的代码
Nov 15 Python
使用python处理题库表格并转化为word形式的实现
Apr 14 Python
Python闭包装饰器使用方法汇总
Jun 29 Python
python 常见的反爬虫策略
Sep 27 Python
Python中的min及返回最小值索引的操作
May 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加水印的代码(支持半透明透明打水印,支持png透明背景)
2013/01/17 PHP
PHP生成随机字符串(3种方法)
2015/09/25 PHP
input、button的不同type值在ajax提交表单时导致的陷阱
2009/02/24 Javascript
JavaScript 原型链学习总结
2010/10/29 Javascript
javascript实现当前页导航激活的方法
2015/02/27 Javascript
JavaScript常见的五种数组去重的方式
2016/12/15 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
jq stop()和:is(:animated)的用法及区别(详解)
2017/02/12 Javascript
使用Node.js实现RESTful API的示例
2017/08/01 Javascript
javascript字体颜色控件的开发 JS实现字体控制
2017/11/27 Javascript
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
JS查找孩子节点简单示例
2019/07/25 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
Vue vm.$attrs使用场景详解
2020/03/08 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
2020/05/06 Javascript
Webpack3+React16代码分割的实现
2021/03/03 Javascript
python处理中文编码和判断编码示例
2014/02/26 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
PyQt5中多线程模块QThread使用方法的实现
2020/01/31 Python
python3代码中实现加法重载的实例
2020/12/03 Python
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
碧欧泉法国官网:Biotherm法国
2019/10/23 全球购物
Steiff台湾官网:德国金耳釦泰迪熊
2019/12/26 全球购物
西班牙品牌鞋子、服装和配饰在线商店:Esdemarca
2021/02/17 全球购物
linux面试题参考答案(4)
2014/09/21 面试题
入团者的自我评价分享
2013/12/02 职场文书
公司前台辞职报告
2014/01/19 职场文书
主题酒店策划书
2014/01/28 职场文书
海飞丝广告词
2014/03/20 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
公司员工离职感言
2015/08/03 职场文书
Python利用folium实现地图可视化
2021/05/23 Python
JavaScript利用html5新方法操作元素类名详解
2021/11/27 Javascript