067 pickle模块
pickle模块
-
pickle: 可以序列化python中所有对象(数据类型),但是无法跨平台
-
Pickle序列化和所有其他编程语言特有的序列化问题一样,它只能用于Python,并且可能不同版本的Python彼此都不兼容,因此,只能用Pickle保存那些不重要的数据,即不能成功地反序列化也没关系。但是pickle的好处是可以存储Python中的所有的数据类型,包括对象,而json不可以。
-
pickle模块序列化和反序列化的过程如下图所示
-
列题
- 序列化(注意:pickle模块需要使用二进制存储,即'wb'模式存储)
- 反序列也要用rb模式取出
def func():# 定义一个函数
x = 3
print(x)
import pickle
# with open('test.pkl','wb') as fw: # 先把func函数序列化文件中去
# pickle.dump(func,fw)
#
with open('test.pkl', 'rb') as fr: # 在从文件中反序列化取出func函数,这个时候func函数不能注释掉
data = pickle.load(fr)
data()
print(data)