zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    一、Python概念知识点汇总
    在ubuntu永久添加alias
    字符串转化为数字 不用sscanf
    python class类
    《Effective C++》笔记
    问到面向对象该如何回答
    数字和字符串互相转换
    python input print 输入输出
    《c专家编程》笔记
    判断是否是回文数
  • 原文地址:https://www.cnblogs.com/dingdangsunny/p/14338032.html
Copyright © 2011-2022 走看看