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中文网!

Posted in 未分类

发表评论