Pythonはgzipの大きいファイルを圧縮して解凍する方法を実現します
2019 ワード
この例では、Pythonがgzipの大きなファイルを圧縮および解凍する方法について説明します.皆さんの参考にしてください.具体的には以下の通りです.
単純にクラスにカプセル化することもできます.
Pythonの関連内容についてもっと興味のある読者は、「Pythonファイルとディレクトリ操作技術要約」、「Pythonテキストファイル操作技術要約」、「Python URL操作技術総括」、「Python画像操作技術総括」、「Pythonデータ構造とアルゴリズムチュートリアル」、「Python Socketプログラミング技術総括」、「Python関数使用技術総括」、『Python文字列操作テクニック要約』及び『Python入門と進級経典教程』
ここでは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テキストファイル操作技術要約」、「Python URL操作技術総括」、「Python画像操作技術総括」、「Pythonデータ構造とアルゴリズムチュートリアル」、「Python Socketプログラミング技術総括」、「Python関数使用技術総括」、『Python文字列操作テクニック要約』及び『Python入門と進級経典教程』
ここではPythonプログラムの設計に役立つことを願っています.