pickleモジュールによるオブジェクトの永続化

プログラム中で生成されたオブジェクトをpickleモジュールを使って外部ファイルに保存する。

(サンプルプログラム)

# オブジェクトのシリアライズとデシリアライズ

import pickle

class Book:
    def __init__(self, title, author):
        self.title = title
        self.author = author

    def __str__(self):
        return self.title + "(" + self.author + " 著)"

if __name__ == '__main__':
    # シリアライズ
    book = Book("走れメロス", "太宰治")
    data = pickle.dumps(book)
    file = open("book.data", "wb")
    file.write(data)
    file.close()

    # たった今作ったばかりのデータを読み込んで、
    # オブジェクトをデシリアライズする。
    file = open("book.data", "rb")
    read_data = file.read()
    book = pickle.loads(read_data)
    print(book) # "走れメロス(太宰治 著)" が表示される。

(ポイント)
pickle.dumpsでオブジェクトをシリアライズし、pickle.loadsでオブジェクトをデシリアライズする。

参考サイト

pickleのマニュアル

Pythonプログラミング物語 © 2016 Frontier Theme