English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Este exemplo demonstra como realizar a compressão e descompressão de arquivos grandes gzip em Python. Compartilho com todos para referência, conforme a seguir:
#encoding=utf-8 #author: walker #date: 2015-10-26 #summary: Teste de compressão gzip/descomprimir arquivo 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 concluído!') gunZipFile(dst, ori) print('gunZipFile concluído!')
também pode ser simplesmente encapsulado em uma classe:
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()
Leitores interessados em mais conteúdo relacionado ao Python podem consultar as seções especiais deste site: 'Resumo de técnicas de manipulação de arquivos e diretórios no Python', 'Resumo de técnicas de manipulação de arquivos de texto no Python', 'Resumo de técnicas de operação de URL no Python', 'Resumo de técnicas de manipulação de imagens no Python', 'Tutorial de estruturas de dados e algoritmos no Python', 'Resumo de técnicas de programação de Socket no Python', 'Resumo de técnicas de uso de funções no Python', 'Resumo de técnicas de manipulação de strings no Python' e 'Tutorial clássico de entrada e avançamento no Python'.
Espero que o que é mencionado neste artigo ajude a todos a programar em Python.
Declaração: O conteúdo deste artigo é extraído da internet, pertence ao respectivo proprietário, foi contribuído e carregado voluntariamente pelos usuários da internet, o site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidade legal relevante. Se você encontrar conteúdo suspeito de violação de direitos autorais, seja bem-vindo a enviar e-mail para: notice#oldtoolbag.com (ao enviar e-mail, substitua # por @ para denunciar e forneça provas relevantes. Apenas após a verificação, o site deletará o conteúdo suspeito de violação de direitos autorais.)