魔力Python——pickle持久化对象

简介

本文主要介绍Python pickle模块的用法,实例分析pickle模块的功能与相关适用技巧。pickle提供了一个简单的持久化功能,可以将对象以文件的形式存放在磁盘上,方便多次读取与共享。

具体用法

pickle.dump(obj,file[,protocol])

这条语句序列化对象obj,并将结果数据流写入到文件file中。可选参数protocol是序列化模式,默认为0,表示以文本形式序列化,如果设置为 1 或 True,则以高压缩的二进制格式保存序列化后的对象,否则以ASCII格式保存。

pickle.load(file)

反序列化对象,将文件中的数据解析为一个python对象。

基本用例

下面这段代码,实现将4维矩阵obj对象持久化:

1
2
3
4
5
6
7
8
9
import pickle
import os
import numpy as np
if os.path.exists('./test.pkl'): #当前路径下是否已经存在序列化的test.pkl
obj=pickle.load(open('./test.pkl','rb')) #如果已经存在直接load
else: #否则,将4维矩阵序列化到存储到当前路径下的test.pkl中
obj = np.ones((4,4))
pickle.dump(obj,open('./test.pkl','wb'))
print(obj)

分享