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 30 Python
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
May 16 Python
Python 3中print函数的使用方法总结
Aug 08 Python
python使用opencv读取图片的实例
Aug 17 Python
详解 Python 与文件对象共事的实例
Sep 11 Python
解决python删除文件的权限错误问题
Apr 24 Python
Python基于Floyd算法求解最短路径距离问题实例详解
May 16 Python
使用EduBlock轻松学习Python编程
Oct 08 Python
pyqt5 从本地选择图片 并显示在label上的实例
Jun 13 Python
Python中查看变量的类型内存地址所占字节的大小
Jun 26 Python
Apache,wsgi,django 程序部署配置方法详解
Jul 01 Python
Python算法中的时间复杂度问题
Nov 19 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编程中八种常见的文件操作方式
2006/11/19 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
jquery异步循环获取功能实现代码
2010/09/19 Javascript
jQuery ajax 路由和过滤器使用说明
2011/08/02 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
js 文本滚动效果的实例代码
2013/08/17 Javascript
Extjs中RowExpander控件的默认展开问题示例探讨
2014/01/24 Javascript
node.js中的fs.futimes方法使用说明
2014/12/17 Javascript
Node.js 学习笔记之简介、安装及配置
2015/03/03 Javascript
JQuery中Bind()事件用法分析
2015/05/05 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
2016/07/01 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
详解Vue中localstorage和sessionstorage的使用
2017/12/22 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
Vite和Vue CLI的优劣
2021/01/30 Vue.js
python fabric使用笔记
2015/05/09 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
python算法表示概念扫盲教程
2017/04/13 Python
使用pycharm在本地开发并实时同步到服务器
2019/08/02 Python
解决Python对齐文本字符串问题
2019/08/28 Python
python实现将视频按帧读取到自定义目录
2019/12/10 Python
django haystack实现全文检索的示例代码
2020/06/24 Python
python利用pytesseract 实现本地识别图片文字
2020/12/14 Python
家庭睡衣和家庭用品:Little Blue House
2018/03/18 全球购物
护理职业应聘自荐书
2013/09/29 职场文书
幼师自我鉴定范文
2013/10/01 职场文书
酒店人事专员岗位职责
2013/12/19 职场文书
大学生党校培训心得体会
2014/09/11 职场文书
中秋节国旗下演讲稿
2014/09/13 职场文书
失职检讨书大全
2015/01/26 职场文书
工程款申请报告
2015/05/15 职场文书
浅析CSS在DevTools 中架构演变
2021/10/05 HTML / CSS