欢迎访问宙启技术站
智能推送

在Python中通过_pickle的load()函数恢复序列化后的对象

发布时间:2023-12-17 06:08:42

在Python中,可以使用pickle模块对对象进行序列化和反序列化操作。pickle模块提供了dump()和load()方法,可以将对象保存到文件中和从文件中恢复对象。

load()函数是pickle模块中的一个方法,它用于从文件中读取并反序列化保存的对象。我们可以在使用dump()方法将对象保存到文件后,使用load()方法从文件中加载并还原对象。

下面是一个使用pickle模块的load()函数恢复序列化后的对象的例子:

import pickle

# 定义一个Person类
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def display(self):
        print("Name:", self.name)
        print("Age:", self.age)

# 将一个Person对象保存到文件中
person = Person("Alice", 30)
with open("person.pkl", "wb") as file:
    pickle.dump(person, file)

# 从文件中加载并恢复对象
with open("person.pkl", "rb") as file:
    restored_person = pickle.load(file)

# 调用对象的方法
restored_person.display()

"""
输出结果:
Name: Alice
Age: 30
"""

在上面的例子中,首先定义了一个Person类,该类有两个属性name和age,还有一个display()方法用于显示对象的属性值。

然后,创建了一个Person对象person,并使用pickle.dump()方法将该对象保存到名为person.pkl的文件中。

接下来,使用pickle.load()方法从person.pkl文件中加载并还原对象,并将其赋给restored_person变量。

最后,通过调用restored_person对象的display()方法,输出了从文件中恢复的对象的属性值。

需要注意的是,load()方法只能读取通过pickle.dump()序列化的对象,如果文件中的内容不是通过pickle模块保存的对象,会抛出异常。

另外,pickle模块保存的文件是二进制文件,不适合直接打开查看。可以使用其他工具(如文本编辑器)将二进制文件转换为可读的格式,以便查看保存的对象。