推荐答案
-- -------------------- ---- ------- ------ ------ - ----- ---- - ------- -------- ---- ---------------- ----- -- ----- ----------------- ----- - ------ ---- ---------------- ----- -- ----- ----------- - ----------------- ------------------ - --- ------- --------
本题详细解读
1. 什么是序列化和反序列化?
序列化是将对象转换为字节流的过程,以便将其存储在文件中或通过网络传输。反序列化则是将字节流转换回对象的过程。
2. pickle
模块的作用
pickle
是 Python 标准库中的一个模块,用于序列化和反序列化 Python 对象。它可以将几乎任何 Python 对象转换为字节流,并且可以将字节流转换回原始对象。
3. 序列化过程
- 使用
pickle.dump()
函数将对象序列化并写入文件。 - 第一个参数是要序列化的对象,第二个参数是文件对象,文件必须以二进制写模式 (
'wb'
) 打开。
with open('data.pkl', 'wb') as file: pickle.dump(data, file)
4. 反序列化过程
- 使用
pickle.load()
函数从文件中读取字节流并反序列化为对象。 - 文件必须以二进制读模式 (
'rb'
) 打开。
with open('data.pkl', 'rb') as file: loaded_data = pickle.load(file)
5. 注意事项
pickle
模块不保证跨语言兼容性,序列化的数据只能在 Python 中使用。- 反序列化时,确保数据来源可信,以避免安全风险。
pickle
模块支持大多数 Python 对象,但某些对象(如文件句柄、网络连接等)无法序列化。