2025.6.4 データの書き込みと読み出し【pickle】
pickle を利用してデータのファイルへの書き込みと読み出しを行う。
対話モードでの例
>>> f1=open('test1.pkl', 'wb')
>>> a=1
>>> import pickle
>>> pickle.dump(a,f1)
ファイルオープンはビルトイン関数の open を利用する。'wb'は「上書き」「バイナリ」モードを意味する。
これで作ったファイルオブジェクト f1 を使って、pickle.dump 関数で書き込みを行う。
>>> f2 = open('test1.pkl', 'rb')
>>> x = pickle.load(f2)
バイナリ形式の読み出しモードでファイルオブジェクトを生成し、pickle の load 関数で読み出しを行う。
なお、追記には対応していない。
pickle は指定したオブジェクトのみを保存に用いられる。全ての変数を保存するには dill ライブラリ を利用する。
実際の例
本来ファイルアクセスにはオープン/クローズ処理が伴うので、with構文を使ってそのあたりの処理をきちんと行うサンプルを示す。書き込みは次の通り、
code:pickle_dump.py
import pickle
data = 1
with open('test1.pkl', 'wb') as f:
pickle.dump(data, f)
読み出しは
code:pickle_load.py
import pickle
with open('test2.pkl', 'rb') as f:
a = pickle.load(f)
print(a)
となる。
参考
pickle --- Python オブジェクトの直列化
[解決!Python]バイナリファイルを読み書きするには:pickle編