在Python中, pickle 模块常用于实现对象的序列化和反序列化,以下是一个简单的实例:
import pickle
# 定义一个类
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# 创建一个Person对象
person = Person("Alice", 30)
# 序列化对象
with open('person.pkl', 'wb') as file:
pickle.dump(person, file)
# 反序列化对象
with open('person.pkl', 'rb') as file:
deserialized_person = pickle.load(file)
print(f"反序列化后的对象:名字是 {deserialized_person.name},年龄是 {deserialized_person.age}")
在上述代码中:
1. 首先定义了一个 Person 类,包含 name 和 age 两个属性。
2. 创建了一个 Person 类的实例 person 。
3. 使用 pickle.dump() 方法将 person 对象序列化,并保存到 person.pkl 文件中。 pickle.dump() 方法接受两个参数,第一个是要序列化的对象,第二个是文件对象,这里使用 'wb' 模式以二进制写入方式打开文件。
4. 然后使用 pickle.load() 方法从 person.pkl 文件中读取数据并反序列化,得到 deserialized_person 对象,最后打印出反序列化后对象的属性值。
请注意, pickle 模块反序列化时可能存在安全风险,因为它会执行文件中的Python代码,所以不要反序列化不可信来源的数据。