【Python】pickle 包的理解和使用
pickle是Python中的标准模块,用于将对象序列化和反序列化(转换成二进制格式以便存储或传输)。使用pickle,可以方便地将Python程序中的任何对象转换成一串二进制字节流,然后将这些字节流存到磁盘或者通过网络传输到另一个系统。
pickle模块可以将一个对象序列化为一串字节流,并将其保存在文件中,也可以从该文件中加载这个对象。pickle提供了四个主要的API:
1. dump(obj, file, protocol=None, *, fix_imports=True):将对象序列化并存储到文件中。
2. dumps(obj, protocol=None, *, fix_imports=True):将对象序列化并返回二进制格式的字符串。
3. load(file, *, fix_imports=True, encoding="ASCII", errors="strict"):从文件中加载对象并反序列化。
4. loads(bytes_object, *, fix_imports=True, encoding="ASCII", errors="strict"):从二进制字符串中加载对象并反序列化。
下面是一个简单的示例,展示了如何使用pickle保存和读取一个Python对象:
```python
import pickle
# 将数据存储到文件中
data = [1, 2, 3]
with open("data.pickle", "wb") as f:
pickle.dump(data, f)
# 从文件中读取数据
with open("data.pickle", "rb") as f:
data_loaded = pickle.load(f)
print(data_loaded) # 输出结果为 [1, 2, 3]
```
需要注意的是,pickle序列化的对象可以包含自定义类。但对于一些特殊的对象,如文件句柄等,则不支持pickle序列化和反序列化操作。