Python壓縮/解壓gzip大文件

Code tells all:

#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:tmpsrc.txt'      dst = r'D:tmpsrc.txt.gz'      ori = r'D:tmpori.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()

相關閱讀:

1、Python打包文件夾(zip/tar/tar.gz)

2、官方示例