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用于url解码和中文解析的小脚本(python url decoder)
Aug 11 Python
Python的Flask框架应用调用Redis队列数据的方法
Jun 06 Python
Python实现购物程序思路及代码
Jul 24 Python
Windows上使用Python增加或删除权限的方法
Apr 24 Python
python和pygame实现简单俄罗斯方块游戏
Feb 19 Python
Python判断变量名是否合法的方法示例
Jan 28 Python
使用python 写一个静态服务(实战)
Jun 28 Python
python中删除某个元素的方法解析
Nov 05 Python
python计算波峰波谷值的方法(极值点)
Feb 18 Python
Python实例方法、类方法、静态方法区别详解
Sep 05 Python
DRF使用simple JWT身份验证的实现
Jan 14 Python
Python中else的三种使用场景
Jun 16 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提取中文首字母
2008/04/09 PHP
解析左右值无限分类的实现算法
2013/06/20 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
基于jQuery实现文本框缩放以及上下移动功能
2014/11/24 Javascript
JS实现判断碰撞的方法
2015/02/11 Javascript
jquery图片切换插件
2015/03/16 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
2015/08/27 Javascript
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
基于JavaScript实现全选、不选和反选效果
2017/02/15 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
2017/05/27 Javascript
使用travis-ci如何持续部署node.js应用详解
2017/07/30 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
nodejs简单读写excel内容的方法示例
2018/03/16 NodeJs
Vue写一个简单的倒计时按钮功能
2018/04/20 Javascript
3分钟了解vue数据劫持的原理实现
2019/05/01 Javascript
Vue项目实现简单的权限控制管理功能
2019/07/17 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
js如何验证密码强度
2020/03/18 Javascript
[01:15]PWL S2开团时刻第二期——他们杀 我就白给
2020/11/25 DOTA
Python  __getattr__与__setattr__使用方法
2008/09/06 Python
django rest framework 数据的查找、过滤、排序的示例
2018/06/25 Python
Python pandas用法最全整理
2019/08/04 Python
python实现计算器功能
2019/10/31 Python
如何将你的应用迁移到Python3的三个步骤
2019/12/22 Python
python模拟点击玩游戏的实例讲解
2020/11/26 Python
python中@property的作用和getter setter的解释
2020/12/22 Python
万宝龙英国官网:Montblanc手表、书写工具、皮革和珠宝
2018/10/16 全球购物
亲戚结婚的请假条
2014/02/11 职场文书
詹天佑教学反思
2014/04/30 职场文书
导游欢送词
2015/01/31 职场文书
大学三好学生主要事迹范文
2015/11/03 职场文书