Pickle¶
Pickling 允许您将 python 对象保存为硬盘驱动器上的二进制文件。
一句警告:不要加载你不信任的 pkl 文件。 恶意的人可以制作恶意的 pkl 文件,可能会在您的计算机上执行意外的代码(SQL注入,密码暴力强制等)。
Pickle 用于序列化和反序列化 Python 对象结构,也称为marshalling 或 flattening。 Pickle 不要与压缩相混淆! 前者是将对象从一种表示(随机存取存储器(RAM)中的数据)转换为另一种表示(磁盘上的文本),而后者是使用较少位编码数据的过程,以节省磁盘空间。
代码示例¶
import pickle
# make an example object to pickle
some_obj = {'x':[4,2,1.5,1], 'y':[32,[101],17], 'foo':True, 'spam':False}
# 写入 pkl
with open('mypickle.pickle', 'wb') as f:
pickle.dump(some_obj, f)
# note that this will overwrite any existing file
# in the current working directory called 'mypickle.pickle'
# 读取 pkl
with open('mypickle.pickle') as f:
loaded_obj = pickle.load(f)
print('loaded_obj is', loaded_obj)
使用 pandas
直接序列化
import pandas as pd
df = pd.DataFrame([range(11), range(100,110)], columns=list('abcdefghijk'))
df.to_pickle('my_df.pickle')
df2 = pd.read_pickle('my_df.pickle')