【Python】データをPickleとして保存する方法

Pythonでコードを書いていると変数の中身をファイルとして書き出したい時がある。

例えば、Tkinterなどでクライアントアプリを作っている時に、ユーザの入力した設定値をファイルに書き出す場合だ。

アプリ内の変数に留めておくと、次回に起動した時に消えてしまうので、再度ユーザが値を入力しなければならない。

そんなアプリは誰も使わないだろう。

だから一度入力した値は、サーバに保存するかファイルに書き出すかする。

個人でアプリを開発していると、サーバのレンタル料がもったいないので、ファイルに書き出すのが手っ取り早くて良い。

使用するデータフォーマットはCSVではなくpickle(ピクル)が良い。

pickleの方がよりシンプルな書き方になる。

def save_obj(obj):
    with open(SETTINGS_FILE, 'wb') as f:
        pickle.dump(obj, f, pickle.HIGHEST_PROTOCOL)


def load_obj():
    with open(SETTINGS_FILE, 'rb') as f:
        return pickle.load(f)

そして、保存したい設定値などはDict(辞書)にしてpickleに書き出す。

settings = {
       "lang": lang,
       "domain": domain
       }

save_obj(settings)

読み出す時には以下の通り。

settings = load_obj()

シンプルなコードを書こう。

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog