python gzip.open 超大文件_Python实现压缩与解压gzip大文件的方法

本文实例讲述了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实现压缩与解压gzip大文件的方法相关文章请关注PHP中文网!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值