pickle とは

Python オブジェクトをファイルとして保存するライブラリ。

使い方

import pickle

l = [1,2,3]
with open('sample.pkl', 'wb') as f:
    pickle.dump(l, f)
import pickle

l = [1,2,3]
with open('sample.pkl', 'rb') as f:
    l = pickle.load(f)
print(l)
# [1, 2, 3]

注意

読み書きモード

  • バイナリモード書き込み(open(file, 'wb'))したファイルはバイナリモードで読み込む(open(file, 'rb'))必要がある
  • テキストモード(’r’, ‘w’)も同様

プロトコルバージョン

pickle の処理のバージョン。

  • 書き込み時と異なるバージョンで読み込もうとするとエラーになる
  • pickle.load()メソッドがバージョンを自動判別してくれるため、新しい Python バージョンで作成したファイルを古い Python で読むときに意外は問題がない

保存時にプロトコルバージョンを指定する方法:

pickle.dump(obj, file, protocol=2)