如何使用Pickle在Python中保存对象

藏色散人
藏色散人 原创
2019-01-18 09:29:47 2716浏览

默认情况下,Pickle是Python库的一部分,只要您需要在用户会话之间保持持久性,它就是一个重要的模块。作为一个模块,pickle提供了在进程之间保存Python对象的功能。

无论您是为数据库、游戏、论坛或其他必须在会话之间保存信息的应用程序编程,pickle都有助于保存标识符和设置。pickle模块可以存储诸如布尔值、字符串和字节数组、列表、字典、函数等数据类型。

注意:pickle的概念也称为序列化、封送和扁平化。然而,关键始终是一样的——将对象保存到文件中以便以后检索。pickle通过将对象写入一个长字节流来实现这一点。

Python中的Pickle示例代码

要将对象写入文件,请使用以下语法中的代码:

import pickle 
object = Object() 
filehandler = open(filename, 'w') 
pickle.dump(object, filehandler)

以下是现实示例:

import pickle 
import math 
object_pi = math.pi 
file_pi = open('filename_pi.obj', 'w') 
pickle.dump(object_pi, file_pi)

此片段将object_pi的内容写入文件处理程序file_pi,而文件处理程序file_pi又绑定到执行目录中的文件filename_pi.obj。

要将对象的值还原到内存,请从文件中加载对象。假设尚未导入pickle以供使用,请先导入它:

import pickle 
filehandler = open(filename, 'r') 
object = pickle.load(filehandler)

以下代码恢复pi的值:

import pickle 
file_pi2 = open('filename_pi.obj', 'r') 
object_pi2 = pickle.load(file_pi2)

然后该对象再次准备好再次使用,这次是object_pi2。当然,如果您愿意,您可以重复使用原始名称。此示例为清晰起见使用不同的名称。

关于Pickle的事情

使用pickle模块时请记住以下事项:

pickle协议特定于Python - 它不保证是跨语言兼容的。您很可能无法传输信息以使其在Perl,PHP,Java或其他语言中有用。

不同版本的Python之间也不保证兼容性。存在不兼容性,因为并非每个Python数据结构都可以由模块序列化。

默认情况下,使用最新版本的pickle协议。除非您手动更改它,否则它仍然是这样。

以上就是如何使用Pickle在Python中保存对象的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。