Python实现压缩与解压gzip大文件的方法
本文实例讲述了Python实现压缩与解压gzip大文件的方法。分享给大家供大家参考,具体如下:
#encoding=utf-8
#author:walker
#date:2015-10-26
#summary:测试gzip压缩/解压文件
importgzip
BufSize=1024*8
defgZipFile(src,dst):
fin=open(src,'rb')
fout=gzip.open(dst,'wb')
in2out(fin,fout)
defgunZipFile(gzFile,dst):
fin=gzip.open(gzFile,'rb')
fout=open(dst,'wb')
in2out(fin,fout)
defin2out(fin,fout):
whileTrue:
buf=fin.read(BufSize)
iflen(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('gZipFileover!')
gunZipFile(dst,ori)
print('gunZipFileover!')
也可以简单地封装成一个类:
classGZipTool: def__init__(self,bufSize): self.bufSize=bufSize self.fin=None self.fout=None defcompress(self,src,dst): self.fin=open(src,'rb') self.fout=gzip.open(dst,'wb') self.__in2out() defdecompress(self,gzFile,dst): self.fin=gzip.open(gzFile,'rb') self.fout=open(dst,'wb') self.__in2out() def__in2out(self,): whileTrue: buf=self.fin.read(self.bufSize) iflen(buf)<1: break self.fout.write(buf) self.fin.close() self.fout.close()
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python文本文件操作技巧汇总》、《PythonURL操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《PythonSocket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。