如何使用Pickle在Python中保存对象
程序员文章站
2022-03-25 15:31:42
...
默认情况下,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中保存对象的详细内容,更多请关注其它相关文章!