🦁

Pythonでpickleを用いてデータをバイナリーファイとして保存する

2023/04/09に公開

概要

Pythonのpickleモジュールを使ってデータをバイナリーファイルとして保存/読み込みする方法を実装します。

環境

  • Docker image: python:3.10
  • Windows 10

内容

pickleの概要

Python オブジェクトの直列化および直列化されたオブジェクトの復元のためのバイナリプロトコルを実装しています。

Python オブジェクトの直列化より

またソースコードは以下になっています。

https://github.com/python/cpython/blob/3.10/Lib/pickle.py

ライブラリのインポート

pickleを使うためには、ライブラリをインポートする必要があります。
以下のimport文を追加します。

import pickle

データの保存

文字コードによってはエラーが出るので、protocol=pickle.HIGHEST_PROTOCOLを指定しています。これによってり速く読み込めるpickleファイルが作れます。
しかし、数字が大きいほどバージョンが上がるので、古いバージョンのPythonでは読み込めない可能性があります。

参考:モジュールインターフェース

def save_data(data, file_name):
    with open(file_name, 'wb') as f:
        pickle.dump(data, f, protocol=pickle.HIGHEST_PROTOCOL)

データの読み込み

def load_data(file_name):
    with open(file_name, 'rb') as f:
        data = pickle.load(f)
    return data
MidraLab(ミドラボ)

Discussion