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程序设计有所帮助。