pickle模块可以接受几乎所有的python对象,并且将其转换成字符串表示,该过程叫做封装;从字符串表示重构该对象称为拆封.
举例:
# 保存变量
# 将多个对象保存到同一个文件中,pickle模块中有很多不同协议可以生成.pkl文件;
# 如果不确定,最好以二进制文件的形式读取和写入.
f = open('model.pkl', 'wb')
pickle.dump(variable1, f)
pickle.dump(variable2, f)
f.close()
与上述的方式对应的是,在其他python会话中载入数据,用load()方法
# 载入数据
f = open('model.pkl', 'rb')
v1 = pickle.load(f)
v2 = pickle.load(f)
f.close()
载入对象的顺序必须和之前保存的一样.
通常使用with语句处理文件的读写操作.with语句在打开文件这类操作时有较好的错误处理机制.举例:
# 打开文件并保存
with open('model.pkl', 'wb') as f:
pickle.dump(variable1, f)
pickle.dump(variable2, f)
# 打开文件并载入
with open('model.pkl', 'rb') as f:
v1 = pickle.load(f)
v2 = pickle.load(f)