《浅析python中的序列化存储的方法》由会员分享,可在线阅读,更多相关《浅析python中的序列化存储的方法(3页珍藏版)》请在金锄头文库上搜索。
1、我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解浅析Python中的序列化存储的方法这篇文章主要介绍了Python中的序列化存储的方法,序列化存储主要针对的是内存和硬盘之间的写入操作,需要的朋友可以参考下在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict:d = dict(name=Bob, age=20, score=88)可以随时修改变量,比如把name改成Bill,但是一旦程序结束,变量所占用的内存就被操作系统全部回收。如果没有把修改后的Bill存储到磁盘上,下次重新运行程序,变量
2、又被初始化为Bob。我们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思。序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。Python提供两个模块来实现序列化:cPickle和pickle。这两个模块功能是一样的,区别在于cPickle是C语言写的,速度快,pickle是纯Python写的,速度慢,跟cStringIO和StringIO
3、一个道理。用的时候,先尝试导入cPickle,如果失败,再导入pickle:try:import cPickle as pickleexcept ImportError:import pickle首先,我们尝试把一个对象序列化并写入文件: d = dict(name=Bob, age=20, score=88) pickle.dumps(d)(dp0nSagenp1nI20nsSscorenp2nI88nsSnamenp3nSBobnp4ns.pickle.dumps()方法把任意对象序列化成一个str,然后,就可以把这个str写入文件。或者用另一个方法pickle.dump()直接把对象序列
4、化后写入一个file-like Object: f = open(dump.txt, wb) pickle.dump(d, f) f.close()看看写入的dump.txt文件,一堆乱七八糟的内容,这些都是Python保存的对象内部信息。当我们要把对象从磁盘读到内存时,可以先把内容读到一个str,然后用pickle.loads()方法反序列化出对象,也可以直接用pickle.load()方法从一个file-like Object中直接反序列化出对象。我们打开另一个Python命令行来反序列化刚才保存的对象: f = open(dump.txt, rb) d = pickle.load(f) f.close() dage: 20, score: 88, name: Bob变量的内容又回来了!当然,这个变量和原来的变量是完全不相干的对象,它们只是内容相同而已。Pickle的问题和所有其他编程语言特有的序列化问题一样,就是它只能用于Python,并且可能不同版本的Python彼此都不兼容,因此,只能用Pickle保存那些不重要的数据,不能成功地反序列化也没关系。对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表