目录
使用pickle序列化
Python中, 一切皆对象, 对象本质上就是一个”存储数据的内存块”; 有时候, 我们需要将”内存块的数据”保存在硬盘上, 或者通过网络传输到其他的计算机上; 这时候, 就需要”对象的序列化和反序列化”; 对象的序列化机制广泛的应用在分布式, 并行系统上;
序列化指的是: 将对象转化成”串行化”数据形式, 存储到硬盘或通过网络传输到其他地方; 反序列化是指相反的过程, 将读取到的”串行化数据”转化成对象;
我们可以使用pickle模块中的函数, 实现序列化和反序列化操作;
序列化我们使用:
pickle.dump(obj,file) obj就是要被序列化的对象, file指的是存储的文件
pickle.load(file) 从file读取数据, 反序列化成对象;
记忆可以移植就是指的是序列化 然后传输给其他地方;
#将对象序列化到文件中
import pickle
with open(r"test.data","wb") as f:
a1 = "张三"
a2 = 123
a3 = [1,23,54]
a = (a1,a2,a3)
pickle.dump(a,f) #把a序列化后存到文件中,文件扩展随便写,二进制文件
pickle.dump(a1, f)
pickle.dump(a2, f)
pickle.dump(a3, f)
#将获得的数据反序列化成对象
with open(r"test.data","rb") as f:
a = pickle.load(f)
a1 = pickle.load(f)
a2 = pickle.load(f)
a3 = pickle.load(f)
print(a)
print(a1)
print(a2)
print(a3)
输出:
D:\wwwroot\pyiteam\venv\Scripts\python.exe D:/wwwroot/pyiteam/mypro_obj/mypy02.py
('张三', 123, [1, 23, 54])
张三
123
[1, 23, 54]
Process finished with exit code 0