欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-04-17 11:02:40
...
默认情况下,Pickle是Python库的一部分,只要您需要在用户会话之间保持持久性,它就是一个重要的模块。作为一个模块,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中保存对象的详细内容,更多请关注其它相关文章!