Python实现压缩与解压gzip大文件的方法


Posted in Python onSeptember 18, 2016

本文实例讲述了Python实现压缩与解压gzip大文件的方法。分享给大家供大家参考,具体如下:

#encoding=utf-8
#author: walker
#date: 2015-10-26
#summary: 测试gzip压缩/解压文件
import gzip
BufSize = 1024*8
def gZipFile(src, dst):
  fin = open(src, 'rb')
  fout = gzip.open(dst, 'wb')
  in2out(fin, fout)
def gunZipFile(gzFile, dst):
  fin = gzip.open(gzFile, 'rb')
  fout = open(dst, 'wb')
  in2out(fin, fout)
def in2out(fin, fout):
  while True:
    buf = fin.read(BufSize)
    if len(buf) < 1:
      break
    fout.write(buf)
  fin.close()
  fout.close()
if __name__ == '__main__':
  src = r'D:\tmp\src.txt'
  dst = r'D:\tmp\src.txt.gz'
  ori = r'D:\tmp\ori.txt'
  gZipFile(src, dst)
  print('gZipFile over!')
  gunZipFile(dst, ori)
  print('gunZipFile over!')

也可以简单地封装成一个类:

class GZipTool:
  def __init__(self, bufSize):
    self.bufSize = bufSize
    self.fin = None
    self.fout = None
  def compress(self, src, dst):
    self.fin = open(src, 'rb')
    self.fout = gzip.open(dst, 'wb')
    self.__in2out()
  def decompress(self, gzFile, dst):
    self.fin = gzip.open(gzFile, 'rb')
    self.fout = open(dst, 'wb')
    self.__in2out()
  def __in2out(self,):
    while True:
      buf = self.fin.read(self.bufSize)
      if len(buf) < 1:
        break
      self.fout.write(buf)
    self.fin.close()
    self.fout.close()

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
跟老齐学Python之关于循环的小伎俩
Oct 02 Python
python查看FTP是否能连接成功的方法
Jul 30 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
Jan 18 Python
Django中间件实现拦截器的方法
Jun 01 Python
Python基于jieba库进行简单分词及词云功能实现方法
Jun 16 Python
python入门:这篇文章带你直接学会python
Sep 14 Python
python消费kafka数据批量插入到es的方法
Dec 27 Python
使用python实现语音文件的特征提取方法
Jan 09 Python
python实现ip地址的包含关系判断
Feb 07 Python
matlab灰度图像调整及imadjust函数的用法详解
Feb 27 Python
Jupyter Notebook 实现正常显示中文和负号
Apr 24 Python
Python入门之基础语法详解
May 11 Python
Python打包文件夹的方法小结(zip,tar,tar.gz等)
Sep 18 #Python
Python简单格式化时间的方法【strftime函数】
Sep 18 #Python
Python简单获取自身外网IP的方法
Sep 18 #Python
Python简单检测文本类型的2种方法【基于文件头及cchardet库】
Sep 18 #Python
Python3实现并发检验代理池地址的方法
Sep 18 #Python
Python常见格式化字符串方法小结【百分号与format方法】
Sep 18 #Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
Sep 18 #Python
You might like
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
图解找出PHP配置文件php.ini的路径的方法
2014/08/20 PHP
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
php判断用户是否手机访问代码
2015/06/08 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
2016/09/09 PHP
Yii框架表单提交验证功能分析
2017/01/07 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
jQuery弹出遮罩层效果完整示例
2016/09/13 Javascript
通过扫描二维码打开app的实现代码
2016/11/10 Javascript
jQuery验证表单格式的使用方法
2017/01/10 Javascript
Vue-Router实现页面正在加载特效方法示例
2017/02/12 Javascript
javascript 数据存储的常用函数总结
2017/06/01 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python使用post提交数据到远程url的方法
2015/04/29 Python
python 通过logging写入日志到文件和控制台的实例
2018/04/28 Python
selenium+python截图不成功的解决方法
2019/01/30 Python
Python&amp;&amp;GDAL实现NDVI的计算方式
2020/01/09 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
Python通过Tesseract库实现文字识别
2020/03/05 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
Python count函数使用方法实例解析
2020/03/23 Python
python使用QQ邮箱实现自动发送邮件
2020/06/22 Python
python 基于wx实现音乐播放
2020/11/24 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
一道SQL面试题
2012/12/31 面试题
总经理司机岗位职责
2014/02/06 职场文书
大班亲子运动会方案
2014/06/10 职场文书
弘扬焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
2015年机关党委工作总结
2015/05/23 职场文书