python学习笔记-tip51(io编程--序列化)

2018-10-19  本文已影响0人  黑键手记

引言

在程序运行过程中,所有的变量都是存在内存中的,比如我们随意定义的dict,他是存活在内存中的

  d=dict(name='xiaoming',age=20,score=10)

但是,一旦程序结束,变量所占用的内存都会被系统所回收,如果我们在程序中给dict中的name重新设置了新值,那么当程序退出,再次打开时,name又开始执行代码,变成了原来的值。

这个时候,我们可能就需要将某些内存中的数据,固化到本地磁盘上了。
这种把变量从内存中变成可存储或者传输的过程称之为序列化,在python中称为「pickling」。
还记得在java中序列化叫做「serialization」,其实是一个意思。

经过序列化后,就可以把序列化之后的内容写入到磁盘,或者通过网络传输到别的机器上去。

反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即「unpickling」
python 提供了pickle模块来实现序列化

pickle模块

我们先尝试把一个对象序列化存入文件


本例中,我们发现使用到了pickle中的两个方法


现在我们反过来,将对象从磁盘读取到内存,看看怎么操作
我们来看下示例

第一个为pick()写法
第二个为picks()写法

这样一对比,发现还是pick()更加合适这个需求

ok,python的序列化(「pickling」)和反序列化(「unpickling」)
就到这里啦~,是不是很简单,大家加油练起来吧

上一篇 下一篇

猜你喜欢

热点阅读