12

7z圧縮されたcsv(テキスト)ファイルから(Python 2.7で)1行ずつ読み取りたいと思います。(大きな)ファイル全体を解凍するのではなく、行をストリーミングしたいのです。

私はpylzma.decompressobj()失敗しました。データエラーが発生します。このコードはまだ行ごとに読み取っていないことに注意してください。

input_filename = r"testing.csv.7z"
with open(input_filename, 'rb') as infile:
    obj = pylzma.decompressobj()
    o = open('decompressed.raw', 'wb')
    obj = pylzma.decompressobj()
    while True:
        tmp = infile.read(1)
        if not tmp: break
        o.write(obj.decompress(tmp))
    o.close()

出力:

    o.write(obj.decompress(tmp))
ValueError: data error during decompression
4

3 に答える 3

1

lzmaPython 3.3+ を使用していた場合は、そのバージョンで標準ライブラリに追加されたモジュールを使用してこれを行うことができる場合があります。

参照:lzma

于 2013-11-20T18:58:32.297 に答える