`pickle` 是 Python 中用于序列化和反序列化对象的模块。简而言之,序列化是将对象转换为可以存储或传输的格式(如字节流),而反序列化是将这种格式的数据转换回其原始对象形式的过程。这在保存复杂的对象结构或从文件或网络加载对象时特别有用。
使用 `pickle` 模块,你可以轻松地将 Python 对象保存到文件中,并在稍后的时间重新加载它们。这对于保存程序状态、实现持久性存储或在网络之间传输复杂数据结构非常有用。
以下是 `pickle` 模块的基本用法:
### 序列化(保存对象)
```python
import pickle
# 一个简单的 Python 对象
data = {
'name': 'Alice',
'age': 30,
'city': 'New York'
}
# 使用 pickle 模块将对象序列化为字节流并保存到文件中
with open('data.pickle', 'wb') as f:
pickle.dump(data, f)
```
### 反序列化(从文件加载对象)
```python
import pickle
# 从文件中加载之前序列化的数据并反序列化为原始对象
with open('data.pickle', 'rb') as f:
loaded_data = pickle.load(f)
print(loaded_data) # 输出原始的字典对象
```
需要注意的是,虽然 `pickle` 非常方便,但它也有一些潜在的安全风险。特别是当从一个不受信任的来源加载数据时,如果数据包含恶意代码,它可能会被执行。因此,在生产环境中使用时应该谨慎。确保只从信任的来源加载数据,并了解数据的来源和内容。