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 实现归并排序算法
Jun 05 Python
Python显示进度条的方法
Sep 20 Python
基于Python 的进程管理工具supervisor使用指南
Sep 18 Python
老生常谈python的私有公有属性(必看篇)
Jun 09 Python
python2.7 mayavi 安装图文教程(推荐)
Jun 22 Python
将TensorFlow的模型网络导出为单个文件的方法
Apr 23 Python
python pygame实现2048游戏
Nov 20 Python
详解python3 + Scrapy爬虫学习之创建项目
Apr 12 Python
Python 实现数据结构中的的栈队列
May 16 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
Aug 19 Python
Python 使用type来定义类的实现
Nov 19 Python
深入了解Python 变量作用域
Jul 24 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
基于mysql的论坛(5)
2006/10/09 PHP
php 代码优化的42条建议 推荐
2009/09/25 PHP
php函数array_merge用法一例(合并同类数组)
2013/02/03 PHP
php 运算符与表达式详细介绍
2016/11/30 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
js select常用操作控制代码
2010/03/16 Javascript
jquery常用技巧及常用方法列表集合
2011/04/06 Javascript
jquery中使用ajax获取远程页面信息
2011/11/13 Javascript
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
js模拟点击以提交表单为例兼容主流浏览器
2013/11/29 Javascript
JS修改iframe页面背景颜色的方法
2015/04/01 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
JS控制静态页面传递参数并获取参数应用
2016/08/10 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
Vue.js 实现数据展示全部和收起功能
2018/09/05 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
2018/09/26 Javascript
vue调试工具vue-devtools安装及使用方法
2018/11/07 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
JavaScript解析JSON数据示例
2019/07/16 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
JavaScript实现多层颜色选项卡嵌套
2020/09/21 Javascript
小程序实现录音功能
2020/09/22 Javascript
Python的时间模块datetime详解
2017/04/17 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
python逆向入门教程
2018/01/15 Python
Python数据可视化之画图
2019/01/15 Python
使用python绘制二元函数图像的实例
2019/02/12 Python
keras 获取某层的输入/输出 tensor 尺寸操作
2020/06/10 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
Clarria化妆品官方网站:购买天然和有机化妆品系列
2018/04/08 全球购物
杭州-DOTNET笔试题集
2013/09/25 面试题
记者岗位职责
2014/01/06 职场文书
清明节扫墓活动方案
2014/03/02 职场文书
Python图片处理之图片裁剪教程
2021/05/27 Python
python接口测试返回数据为字典取值方式
2022/02/12 Python