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和OpenCV库将URL转换为OpenCV格式的方法
Mar 27 Python
详解Python中find()方法的使用
May 18 Python
python实现的简单RPG游戏流程实例
Jun 28 Python
Python利用带权重随机数解决抽奖和游戏爆装备问题
Jun 16 Python
python Flask实现restful api service
Dec 04 Python
利用python将pdf输出为txt的实例讲解
Apr 23 Python
使用Python更换外网IP的方法
Jul 09 Python
python2与python3中关于对NaN类型数据的判断和转换方法
Oct 30 Python
对web.py设置favicon.ico的方法详解
Dec 04 Python
python 反编译exe文件为py文件的实例代码
Jun 27 Python
Python的形参和实参使用方式
Dec 24 Python
最新Python idle下载、安装与使用教程图文详解
Nov 28 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
php5.2时间相差8小时
2007/01/15 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
php屏蔽错误及提示的方法
2020/05/10 PHP
JavaScript 动态改变图片大小
2009/06/11 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
基于jquery的气泡提示效果
2010/05/31 Javascript
使用jQuery的attr方法来修改onclick值
2014/07/07 Javascript
node.js中Socket.IO的进阶使用技巧
2014/11/04 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
2016/08/10 Javascript
Node.js与Sails redis组件的使用教程
2017/02/14 Javascript
在vue项目中使用Nprogress.js进度条的方法
2018/01/31 Javascript
Python中的map、reduce和filter浅析
2014/04/26 Python
Python中的choice()方法使用详解
2015/05/15 Python
python判断字符串编码的简单实现方法(使用chardet)
2016/07/01 Python
python爬虫使用cookie登录详解
2017/12/27 Python
Python编程快速上手——选择性拷贝操作案例分析
2020/02/28 Python
keras得到每层的系数方式
2020/06/15 Python
利用SVG和CSS3来实现一个炫酷的边框动画
2015/07/22 HTML / CSS
德国最大的网上鞋店之一:Schuhe24.de
2017/06/10 全球购物
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
FC-Moto瑞典:欧洲最大的摩托车服装和头盔商店之一
2018/11/27 全球购物
Invicta手表官方商店:百年制表历史的瑞士腕表品牌
2019/09/26 全球购物
企业文化宣传标语
2014/06/09 职场文书
理财学专业自荐书
2014/06/28 职场文书
关于成绩下滑的自我检讨书
2014/09/20 职场文书
大学生国庆节65周年演讲稿范文
2014/09/25 职场文书
运动会开幕词
2015/01/28 职场文书
大学生社会实践感想
2015/08/11 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书
解析:创业计划书和商业计划书二者之间到底有什么区别
2019/08/14 职场文书
68句权威创业名言
2019/08/26 职场文书
Nginx域名转发https访问的实现
2021/03/31 Servers
Oracle 触发器trigger使用案例
2022/02/24 Oracle
Java中的随机数Random
2022/03/17 Java/Android