Python之pickle标准模块

来源:互联网 发布:电音软件 编辑:程序博客网 时间:2024/06/06 00:39

Python之pickle:

转自:http://blog.sina.com.cn/s/blog_708be8850101bb04.html


1.什么是Pickle?Pickle的优点是?
 
Python ships with a standard library called pickle, which can save and load almost any Python data object, including lists.
Once you pickle your data to a file, it is persistent and ready to be read into another program at some later data/time.
 
Python提供了一个名为Pickle的标准模块。这是一个令人赞叹的模块,几乎可以把任何Python对象(甚至是一些Python代码块(form)!)表达为为字符串,这一过程称之为封装(pickling)。从字符串表达出重新构造对象称之为拆封(unpickling)。封装状态中的对象可以存储在文件或对象中,也可以通过网络在远程的机器之间传输。
 
Pickle模块会创建一个Python语言专用的二进制格式,而不需要把他们转化为字符串,也不用底层的文件访问操作把它们写入到一个二进制文件里,你基本上不用考虑任何文件细节。
 
2.Pickle的主要函数
 
Pickle模块中的两个主要函数是dump()和load()。
dump()函数把数据对象以特定的格式保存到给定的文件中。
load()函数从文件中取出已保存的对象时,pickle知道如何恢复这些对象到它们本来的格式。


dumps()函数执行和dump() 函数相同的序列化。取代接受流对象并将序列化后的数据保存到磁盘文件,这个函数简单的返回序列化的数据。
loads()函数执行和load() 函数一样的反序列化。取代接受一个流对象并去文件读取序列化后的数据,它接受包含序列化后的数据的str对象, 直接返回的对象。


cPickle是pickle得一个更快得C语言编译版本。
pickle和cPickle相当于java的序列化和反序列化操作
 
3.Pickle的使用方法
import pickle
 
with open('mydata.pickle','wb') as mysavedata:
 pickle.dump({'alice':0,'clio':8},mysavedata)
 
with open('mydata.pickle','rb') as myrestoredata:
 a_dict = pickle.load(myrestoredata)
 
print a_dict
结果:
{'clio': 8, 'alice': 0}

0 0
原创粉丝点击