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实现省市三级菜单效果
Jan 20 Python
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
Jun 18 Python
Python编程判断一个正整数是否为素数的方法
Apr 14 Python
利用pyinstaller将py文件打包为exe的方法
May 14 Python
Python的log日志功能及设置方法
Jul 11 Python
解决Pycharm 导入其他文件夹源码的2种方法
Feb 12 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
Mar 12 Python
Matplotlib使用Cursor实现UI定位的示例代码
Mar 12 Python
python如何判断IP地址合法性
Apr 05 Python
深入浅析pycharm中 Make available to all projects的含义
Sep 15 Python
Python使用grequests并发发送请求的示例
Nov 05 Python
java字符串格式化输出实例讲解
Jan 06 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/10/09 PHP
《PHP编程最快明白》第三讲:php数组
2010/11/01 PHP
一段利用WSH修改和查看IP配置的代码
2008/05/11 Javascript
jQuery 技巧大全(新手入门篇)
2009/05/12 Javascript
javascript设置金额样式转换保留两位小数示例代码
2013/12/04 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
javascript圆盘抽奖程序实现原理和完整代码例子
2014/06/03 Javascript
JavaScript静态类型检查工具FLOW简介
2015/01/06 Javascript
JavaScript获取各大浏览器信息图示
2015/11/20 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
2016/10/17 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
js 两数组去除重复数值的实例
2017/12/06 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
2019/10/12 Javascript
九步学会Python装饰器
2015/05/09 Python
python利用装饰器进行运算的实例分析
2015/08/04 Python
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
Python编程把二叉树打印成多行代码
2018/01/04 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
2018/02/18 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
2018/07/10 Python
深入学习python多线程与GIL
2019/08/26 Python
通过 Django Pagination 实现简单分页功能
2019/11/11 Python
Python改变对象的字符串显示的方法
2020/08/01 Python
女性时尚在线:IVRose
2019/02/23 全球购物
俄罗斯电子产品在线商店:UltraTrade
2020/01/30 全球购物
Prototype如何为一个Ajax添加一个参数
2015/12/06 面试题
仓库门卫岗位职责
2013/12/22 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
企业年检委托书范本
2014/10/14 职场文书
保洁员岗位职责
2015/02/04 职场文书
小学入学感言
2015/08/01 职场文书
《水浒传》读后感3篇(范文)
2019/09/19 职场文书
JavaScript执行机制详细介绍
2021/12/06 Javascript