English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 글은 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()
파이썬 관련 내용에 대해 더 알고 싶은 독자는 다음 특집을 확인해 주세요: 《파이썬 파일 및 디렉토리 작업 기술 요약》、《파이썬 텍스트 파일 작업 기술 요약》、《파이썬 URL 작업 기술 요약》、《파이썬 이미지 작업 기술 요약》、《파이썬 데이터 구조 및 알고리즘 튜토리얼》、《파이썬 소켓 프로그래밍 기술 요약》、《파이썬 함수 사용 기술 요약》、《파이썬 문자열 작업 요약》 및 《파이썬 입문 및 고급 튜토리얼》
본 문서에서 설명된 내용이 여러분의 파이썬 프로그램 설계에 도움이 되길 바랍니다.
언급: 본문은 인터넷에서 가져왔으며, 저작권자는 모두입니다. 내용은 인터넷 사용자가 자발적으로 기여하고 업로드한 것이며, 이 사이트는 소유권을 가지지 않으며, 인공적인 편집 처리를 하지 않았으며, 관련 법적 책임도 부담하지 않습니다. 저작권 위반된 내용을 발견하면 메일을 보내 주시기 바랍니다: notice#oldtoolbag.com(메일을 보내면, #을 @으로 변경해 주세요. 신고하고 관련 증거를 제공하시면, 사이트가 즉시 위반된 내용을 삭제합니다.