首页 > 编程笔记 > Python笔记 阅读:36

Python pickle序列化和反序列化(附带实例)

在程序运行过程中,所有的变量都存放在内存中,随着程序运行的结束,变量随之被销毁,在程序再次运行时,变量重置为初始值,由于有时需要记住变量的值,因此需要将变量存放在硬盘等介质上。

把变量从内存中变成可存储或传输的过程被称为序列化。在序列化后,可以把序列化后的内容写入硬盘或者通过网络传输。

反之,把变量从序列化的对象重新读到内存中的过程被称为反序列化,即 unpickling。

Python 提供了 pickle 模块来实现 Python 对象的序列化和反序列化操作。

使用 pickle.dump() 方法把 Python 字典对象写入 messi.txt 文件的代码为:
>>> import pickle
>>> d = dict(name='messi',age=30)
>>> with open('messi.txt','wb') as f:
...     pickle.dump(d,f)
...
>>>
执行程序代码后,在当前目录下会产生文件 messi.txt。

通过 pickle.load() 方法可将 messi.txt 文件中的字典对象反序列化到内存中,即:
>>> import pickle
>>> with open('messi.txt','rb') as f:
...     d = pickle.load(f)
...
>>> d
{'age': 30, 'name': 'messi'}
>>> 

相关文章