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编写的com组件发生R6034错误的原因与解决办法
Apr 01 Python
python爬虫之模拟登陆csdn的实例代码
May 18 Python
python-Web-flask-视图内容和模板知识点西宁街
Aug 23 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
Oct 04 Python
Python Handler处理器和自定义Opener原理详解
Mar 05 Python
django ORM之values和annotate使用详解
May 19 Python
如何在windows下安装配置python工具Ulipad
Oct 27 Python
python实现文件分片上传的接口自动化
Nov 19 Python
Python3+Appium安装及Appium模拟微信登录方法详解
Feb 16 Python
Python使用tkinter实现小时钟效果
Feb 22 Python
Python词云的正确实现方法实例
May 08 Python
Python find()、rfind()方法及作用
Dec 24 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
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
2019/10/16 PHP
浏览器脚本兼容 文本框中,回车键触发事件的兼容
2010/06/21 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
2015/12/16 Javascript
JS中改变this指向的方法(call和apply、bind)
2016/03/26 Javascript
js与jquery分别实现tab标签页功能的方法
2016/11/18 Javascript
jquery插入兄弟节点的操作方法
2016/12/07 Javascript
JS实现的简单表单验证功能示例
2017/10/13 Javascript
vue中使用refs定位dom出现undefined的解决方法
2017/12/21 Javascript
JS正则表达式常见用法实例详解
2018/06/19 Javascript
jQuery实现的简单手风琴效果示例
2018/08/29 jQuery
js实现多图和单图上传显示
2019/12/18 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
在nodejs中创建child process的方法
2021/01/26 NodeJs
[04:38]完美世界携手游戏风云打造 卡尔工作室饰品系统篇
2013/04/25 DOTA
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
python实现查询苹果手机维修进度
2015/03/16 Python
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
python paramiko远程服务器终端操作过程解析
2019/12/14 Python
PyCharm第一次安装及使用教程
2020/01/08 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
详解python实现可视化的MD5、sha256哈希加密小工具
2020/09/14 Python
就业推荐自我鉴定
2013/10/06 职场文书
外贸学院会计专业应届生求职信
2013/11/14 职场文书
服务员岗位责任制
2014/02/11 职场文书
《鞋匠的儿子》教学反思
2014/03/02 职场文书
竞选大队委员演讲稿
2014/04/28 职场文书
圣诞节活动策划方案
2014/06/09 职场文书
党委班子纠正“四风”问题整改措施
2014/10/28 职场文书
烟台的海导游词
2015/02/02 职场文书
2015年推广普通话演讲稿
2015/03/20 职场文书
建国大业观后感
2015/06/01 职场文书
关于运动会的宣传稿
2015/07/23 职场文书
启动Tomcat时出现大量乱码的解决方法
2021/06/21 Java/Android
Java使用jmeter进行压力测试
2021/07/09 Java/Android