次のようなコンマ/タブ区切りのデータ ファイルを頻繁に使用します。
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」のようなピクル関数はありますか?