对象持久化

常常需要将对象内容保存到一个文件中或从中进行还原,解决该问题的方法之一是编写两个函数,以一种特殊格式在文件中读取和写入数据。另一种方法是用pickleshelve模块。

pickle模块将对象序列化为一个字节流,这个字节流可以写入到文件并在以后进行还原。pickle的接口非常简单,只包含dump()load()操作。例如,以下代码将一个对象写入一个文件:

import pickle
obj = SomeObject()
with open(filename, 'wb') as f:
    pickle.dump(obj, f)  # 将对象保存到f上

要还原对象,可以使用以下代码:

import pickle
with open(filename, 'rb') as f:
    obj = pickle.load(f)  # 还原对象