>백엔드 개발 >파이썬 튜토리얼 >Python에서 gzip 대용량 파일을 압축 및 압축 해제하는 방법

Python에서 gzip 대용량 파일을 압축 및 압축 해제하는 방법

高洛峰
高洛峰원래의
2017-02-22 16:32:301735검색

이 글의 예시에서는 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__ == &#39;__main__&#39;:
  src = r&#39;D:\tmp\src.txt&#39;
  dst = r&#39;D:\tmp\src.txt.gz&#39;
  ori = r&#39;D:\tmp\ori.txt&#39;
  gZipFile(src, dst)
  print(&#39;gZipFile over!&#39;)
  gunZipFile(dst, ori)
  print(&#39;gunZipFile over!&#39;)

는 간단히 클래스로 캡슐화할 수도 있습니다.

class GZipTool:
  def __init__(self, bufSize):
    self.bufSize = bufSize
    self.fin = None
    self.fout = None
  def compress(self, src, dst):
    self.fin = open(src, &#39;rb&#39;)
    self.fout = gzip.open(dst, &#39;wb&#39;)
    self.__in2out()
  def decompress(self, gzFile, dst):
    self.fin = gzip.open(gzFile, &#39;rb&#39;)
    self.fout = open(dst, &#39;wb&#39;)
    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()


큰 gzip 파일을 압축 및 압축 해제하는 더 많은 Python 방법을 보려면 PHP 중국어 웹사이트에 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.