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 递归函数详解及实例
Dec 27 Python
python使用Pycharm创建一个Django项目
Mar 05 Python
Django 根据数据模型models创建数据表的实例
May 27 Python
Python设计模式之职责链模式原理与用法实例分析
Jan 11 Python
python+pyqt5实现KFC点餐收银系统
Jan 24 Python
Python实现 PS 图像调整中的亮度调整
Jun 28 Python
使用python切片实现二维数组复制示例
Nov 26 Python
python的time模块和datetime模块实例解析
Nov 29 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
Feb 21 Python
Python判断三段线能否构成三角形的代码
Apr 12 Python
python批量生成身份证号到Excel的两种方法实例
Jan 14 Python
Python中常见的反爬机制及其破解方法总结
Jun 10 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
德生S2000电路分析
2021/03/02 无线电
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
Zend Framework校验器Zend_Validate用法详解
2016/12/09 PHP
IE php关于强制下载文件的代码
2008/08/23 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
2015/06/16 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
2020/04/20 Javascript
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
2017/03/15 Javascript
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
Vue实现跑马灯效果
2020/05/25 Javascript
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Using Django with GAE Python 后台抓取多个网站的页面全文
2016/02/17 Python
Python绘制七段数码管实例代码
2017/12/20 Python
python脚本作为Windows服务启动代码详解
2018/02/11 Python
Python中分支语句与循环语句实例详解
2018/09/13 Python
python批量创建指定名称的文件夹
2019/03/21 Python
Django网络框架之HelloDjango项目创建教程
2019/06/06 Python
python f-string式格式化听语音流程讲解
2019/06/18 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
2020/12/04 Python
Python OpenCV中的numpy与图像类型转换操作
2020/12/11 Python
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
利用html5 file api读取本地文件示例(如图片、PDF等)
2018/03/07 HTML / CSS
HTML5+lufylegend实现游戏中的卷轴
2016/02/29 HTML / CSS
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
戴森比利时官方网站:Dyson BE
2020/10/03 全球购物
岗位聘任书范文
2014/03/29 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
群众路线自我剖析范文
2014/11/04 职场文书
学校2014年度工作总结
2014/12/06 职场文书
行为习惯主题班会
2015/08/14 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书
Java异常处理try catch的基本用法
2021/12/06 Java/Android