14

次のようなコンマ/タブ区切りのデータ ファイルを頻繁に使用します。

key1,1,2.02,hello,4
key2,3,4.01,goodbye,6
...

これを Python で読み取って前処理し、次のようにリストのリストにすることができます。

[ [ key1, 1, 2.02, 'hello', 4 ], [ key2, 3, 4.01, 'goodbye', 6 ] ]

ときどき、このリストのリストをピクルとして保存したいことがあります。これは、さまざまなタイプのエントリが保存されるためです。ただし、ピクルス化されたファイルが大きい場合は、このリストのリストをストリーミング形式で読み返すと便利です。

Python でテキスト ファイルをストリームとして読み込むには、次のようにして各行を出力します。

with open( 'big_text_file.txt' ) as f:
    for line in f:
        print line

Python リストに対して同様のことを行うことはできますか。

import pickle
with open( 'big_pickled_list.pkl' ) as p:
    for entry in pickle.load_streaming( p ): # note: pickle.load_streaming doesn't exist
        print entry

「load_streaming」のようなピクル関数はありますか?

4

2 に答える 2