English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Метод реализации сжатия и разжатия больших файлов gzip с помощью Python

Этот пример рассказывает о методах сжатия и распаковки больших файлов gzip с помощью Python. Делимся этим с вами для вашего рассмотрения, вот так:

#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, рекомендуется посетить темы на нашем сайте: «Сборник навыков работы с файлами и каталогами в Python», «Сборник навыков работы с текстовыми файлами в Python», «Сборник навыков работы с URL в Python», «Сборник навыков работы с изображениями в Python», «Учебник по структурам данных и алгоритмам в Python», «Сборник навыков работы с Socket в Python», «Сборник навыков использования функций в Python», «Сборник навыков работы со строками в Python» и «Классическое руководство по入门у и продвинутому изучению Python»

Надеюсь, что это руководство поможет вам в разработке Python-программ.

Заявление: содержание этой статьи взято из Интернета, авторские права принадлежат соответствующему автору. Контент предоставлен пользователями Интернета, самостоятельно загружен, сайт не обладает правами собственности, не прошел редактирование и не несет ответственности за соответствующие юридические последствия. Если вы обнаружите подозрительное содержание, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (при отправке письма замените # на @), и предоставьте соответствующие доказательства. При обнаружении факта нарушения авторских прав сайт незамедлительно удаляет подозрительное содержимое.

Рекомендуем вам также посмотреть