pickleモジュールを使うと、バイナリデータとしてデータを保存することができますが、
複数データの取り扱いについての情報が少ないので、求めています。
例えば
py3
1with open("test.pickle","wb") as f: 2 for i in range(10): 3 data = {i:"<<<data%d>>>" % i} 4 pickle.dump(data,f)
このtest.pickleファイルには以下の情報が格納されたわけですが。
pickle
1{0: '<<<data0>>>'} 2{1: '<<<data1>>>'} 3{2: '<<<data2>>>'} 4{3: '<<<data3>>>'} 5{4: '<<<data4>>>'} 6{5: '<<<data5>>>'} 7{6: '<<<data6>>>'} 8{7: '<<<data7>>>'} 9{8: '<<<data8>>>'} 10{9: '<<<data9>>>'}
こいつらをload()するには、
py3
1with open("test.pickle","wb") as f: 2 for i in range(10): 3 yield pickle.load(f)
とかなんとかやってやりゃあいいんですが、
たとえば、3番目のでーただけ欲しいぜ!って時は上から読み込まなきゃいけないのかな。
そこら辺の使い方がどうも転がっていない様子。
だれかご存知でしたら、ご教授ください。
追記
一応、以下のようにして1行ずつ読み込んでいるのかは知らないけれど、目的の行のでーたのみ取得は可能
def get(): with open("test.pickle","rb") as f: while True: try: yield pickle.load(f) except: break data = get() d = list(data)[3] print(d)
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/05 02:01