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如何快速上手? 快速掌握一门新语言的方法
Nov 14 Python
Python实现简单生成验证码功能【基于random模块】
Feb 10 Python
Python中字符串List按照长度排序
Jul 01 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
Aug 07 Python
Pytorch实现GoogLeNet的方法
Aug 18 Python
Python协程操作之gevent(yield阻塞,greenlet),协程实现多任务(有规律的交替协作执行)用法详解
Oct 14 Python
Python面向对象之多态原理与用法案例分析
Dec 30 Python
Python3 shutil(高级文件操作模块)实例用法总结
Feb 19 Python
python 实现仿微信聊天时间格式化显示的代码
Apr 17 Python
基于Keras的格式化输出Loss实现方式
Jun 17 Python
基于python实现操作redis及消息队列
Aug 27 Python
Python collections.deque双边队列原理详解
Oct 05 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
PHP操作MongoDB GridFS 存储文件的详解
2013/06/20 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
PHP生成随机密码4种方法及性能对比
2020/12/11 PHP
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
jQuery 自定义函数写法分享
2012/03/30 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
Reactjs实现通用分页组件的实例代码
2017/01/19 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
jQuery阻止事件冒泡实例分析
2018/07/03 jQuery
JS加密插件CryptoJS实现的DES加密示例
2018/08/16 Javascript
全面了解JavaScript的作用域链
2019/04/03 Javascript
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
JS时间戳与日期格式互相转换的简单方法示例
2021/01/30 Javascript
详解Python中的文本处理
2015/04/11 Python
Python安装第三方库及常见问题处理方法汇总
2016/09/13 Python
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
python使用TensorFlow进行图像处理的方法
2018/02/28 Python
tensorflow识别自己手写数字
2018/03/14 Python
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
opencv 实现特定颜色线条提取与定位操作
2020/06/02 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
Python3爬虫中Selenium的用法详解
2020/07/10 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
C#笔试题集合
2013/06/21 面试题
翻译专业应届生求职信
2013/11/23 职场文书
个人生活学习自我评价范文
2013/11/26 职场文书
护士自我鉴定总结
2014/03/24 职场文书
贷款委托书怎么写
2014/08/02 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
2016八一建军节慰问信
2015/11/30 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书