pickle
pickle是标准库中的一个模块,在Python 2中还有一个cpickle,两者的区别就是后者更快。所以,下面操作中,不管是用import pickle,还是用import cpickle as pickle,在功能上都是一样的。
而在Python 3中,你只需要import pickle即可,因为它已经在Python 3中具备了Python 2中的cpickle同样的性能。
pickle.dump(obj,file[,protocol])
- obj:序列化对象,在上面的例子中是一个列表,它是基本类型,也可以序列化自己定义的对象。
- file:要写入的文件。可以更广泛地可以理解为为拥有
write()方法的对象,并且能接受字符串为为参数,所以,它还可以是一个StringIO对象,或者其它自定义满足条件的对象。 - protocol:可选项。默认为False(或者说0),是以ASCII格式保存对象;如果设置为1或者True,则以压缩的二进制格式保存对象。
序列化对象
|
|
反序列化对象
|
|
读取自定义对象
|
|
shelve
由于数据的复杂性,pickle只能完成一部分工作,在另外更复杂的情况下,它就稍显麻烦了。于是,又有了shelve。
|
|
所建立的对象被变量s所引用,就如同字典一样,可称之为类字典对象。所以,可以如同操作字典那样来操作它。
但是,要小心坑:
|
|