12

Python で大きなテキスト ファイルを圧縮したい (>20Gb ファイルについて話している)。私は専門家ではないので、見つけた情報を収集しようとしましたが、次のように動作するようです:

import bz2

with open('bigInputfile.txt', 'rb') as input:
    with bz2.BZ2File('bigInputfile.txt.bz2', 'wb', compresslevel = 9) as output:
        while True:
            block = input.read(900000)
                if not block:
                    break
                output.write(block)

input.close()
output.close()

この構文が正しいかどうか、また最適化する方法があるかどうか疑問に思っています。ここで何かが欠けているという印象があります。

どうもありがとう。

4

2 に答える 2

19

スクリプトは正しいようですが、省略できます。

from shutil import copyfileobj

with open('bigInputfile.txt', 'rb') as input:
    with bz2.BZ2File('bigInputfile.txt.bz2', 'wb', compresslevel=9) as output:
        copyfileobj(input, output)
于 2012-03-01T15:33:31.863 に答える
0

なぜ.close()メソッドを呼び出すのですか?with:ステートメントを使用するため、これらは必要ありません。

于 2012-03-01T15:19:48.597 に答える