pickle包

之前一直觉得matlab有mlx,python有ipynb(Jupyter Notebook),R就没有原生态的工具?直到发现了Rmd

后来觉得matlab有mat,R有Rdata,Python难道没有自己的数据保存格式?

其实,pickle可以在一定程度上完成这一功能。(学习自https://blog.csdn.net/chunmi6974/article/details/78392230/)

官网:https://docs.python.org/3/library/pickle.html

pickle可以将内存中的Python对象转换成为文本流,然后写入txt中。

pickle模块只能在python中使用,python中几乎所有的数据类型(列表,字典,集合,类等)都可以用pickle来序列化,

pickle序列化后的数据,可读性差,人一般无法识别。

由于其可读性较差,所以为了强调数据类型,也可以用一种自定义的文件后缀,如pydata。

  • pickle.dump(obj, file[, protocol]):序列化对象,并将结果数据流写入到文件对象中。参数protocol是序列化模式,默认值为0,表示以文本的形式序列化。protocol的值还可以是1或2,表示以二进制的形式序列化。
  • pickle.load(file):反序列化对象。将文件中的数据解析为一个Python对象。

其中要注意的是,在使用load(file)加载类对象时,要让python能够找到类的定义,否则会报错。

import pandas as pd
test_dict = {'id':[1,2,3],
             'name':['Alice','Bob','Cindy'],
             'math':[90,89,99],
             'english':[89,94,80]}
test_df = pd.DataFrame(test_dict)
import pickle 
f=open('test.pydata','wb')
pickle.dump(test_df,f)
f.close()
del test_df
f=open('test.pydata','rb')
test_df=pickle.load(f)
f.close()
test_df

posted @ 2021-01-28 09:22  叮叮当当sunny  阅读(359)  评论(0编辑  收藏  举报