网络编程
位置:首页>> 网络编程>> Python编程>> Python实现压缩与解压gzip大文件的方法

Python实现压缩与解压gzip大文件的方法

作者:RQSLT  发布时间:2021-10-13 19:39:41 

标签:Python,压缩,解压

本文实例讲述了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程序设计有所帮助。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com