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批量修改文件后缀示例代码分享
Dec 24 Python
在python中的socket模块使用代理实例
May 29 Python
Python DataFrame设置/更改列表字段/元素类型的方法
Jun 09 Python
python中单下划线_的常见用法总结
Jul 10 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
Aug 17 Python
Python面向对象之Web静态服务器
Sep 03 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
Dec 11 Python
Tensorflow获取张量Tensor的具体维数实例
Jan 19 Python
Python3 集合set入门基础
Feb 10 Python
Python bisect模块原理及常见实例
Jun 17 Python
Python使用正则表达式实现爬虫数据抽取
Aug 17 Python
python使用scapy模块实现ping扫描的过程详解
Jan 21 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 is_file 判断给定文件名是否为一个正常的文件
2010/05/10 PHP
如何使用php判断服务器是否是HTTPS连接
2013/07/05 PHP
Destoon模板制作简明教程
2014/06/20 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
2020/04/13 PHP
jQuery timers计时器简单应用说明
2010/10/28 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
javascript学习笔记(三)BOM和DOM详解
2014/09/30 Javascript
js style动态设置table高度
2014/10/21 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
2015/09/10 Javascript
js图片轮播手动切换效果
2015/11/10 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
关于微信上网页图片点击全屏放大效果
2016/12/19 Javascript
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
Mobile Web开发基础之四--处理手机设备的横竖屏问题
2017/08/11 Javascript
vue实现移动端返回顶部
2020/10/12 Javascript
JavaScript实现手风琴效果
2021/02/18 Javascript
python基础教程之自定义函数介绍
2014/08/29 Python
Python中的异常处理学习笔记
2015/01/28 Python
python数据封装json格式数据
2018/03/04 Python
python实现excel读写数据
2021/03/02 Python
python中使用print输出中文的方法
2018/07/16 Python
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
Python元组常见操作示例
2019/02/19 Python
python绘制彩虹图
2019/12/16 Python
python如何实现单链表的反转
2020/02/10 Python
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
2020/12/27 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
Coggles美国/加拿大:高级国际时装零售商
2018/10/23 全球购物
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
2014迎国庆演讲稿
2014/09/19 职场文书
出国留学单位推荐信
2015/03/26 职场文书
2016年中秋节寄语大全
2015/12/07 职场文书
导游词之唐山景点
2019/12/18 职场文书