Python對象序列化可以通過pickle模塊來實現。pickle模塊提供了一種簡單的持久化Python對象的方法,它將Python對象轉化為一系列字節流,可以存儲在文件或者通過網絡傳輸,然后再將字節流重新轉化為原來的Python對象。
以下是一個簡單的示例代碼,演示了如何使用pickle模塊進行對象的序列化和反序列化:
import pickle
# 定義一個對象
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# 序列化對象
def serialize(obj, file_path):
with open(file_path, 'wb') as file:
pickle.dump(obj, file)
# 反序列化對象
def deserialize(file_path):
with open(file_path, 'rb') as file:
obj = pickle.load(file)
return obj
# 使用示例
p = Person('Alice', 25)
serialize(p, 'person.pkl')
p_deserialized = deserialize('person.pkl')
print(p_deserialized.name) # 輸出:Alice
print(p_deserialized.age) # 輸出:25
在上述代碼中,我們定義了一個Person
類,然后使用pickle
模塊中的dump
方法將Person
對象序列化到文件person.pkl
中。接著,我們使用pickle
模塊中的load
方法從文件中反序列化出一個對象p_deserialized
,并打印出其中的屬性值。
需要注意的是,在使用pickle進行對象的序列化和反序列化時,要確保讀取和寫入文件的模式分別為rb
和wb
,這樣可以保證以二進制的形式進行讀寫操作。