美文网首页
pickle序列化存储

pickle序列化存储

作者: 一位学有余力的同学 | 来源:发表于2020-05-29 12:17 被阅读0次

    1.为什么要进行序列化存储

    在程序运行过程中所有的变量都是存在内存中,一旦程序关闭或者电脑关机,内存中的所有数据都会丢失。为了能够继续使用,我们需要将数据存放在硬盘里。

    我们把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是一个意思。

    序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。
    反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。

    2.如何进行序列化与反序列化

    首先,我们尝试把一个对象序列化并写入文件:

    import pickle
    d = dict(name='Bob', age=20, score=88)
    
    with open('data.pkl', 'wb') as ff:
        pickle.dump(d, ff)
    

    此时,会在相同目录下产生一个‘data.pkl’文件,这个文件是人类不可读的。
    with open() as是python中打开文件夹的一种操作,‘wb’是以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    关于python中open的用法和读写文件的操作,请分别访问博客教程了解。

    序列化操作完成之后我们要进行反序列化:

    with open('data.pkl', 'rb') as ff:
        data1 = pickle.load(ff)
        print(data1)
    

    其中'rb'表示只读操作。
    输出结果为:

    {'name': 'Bob', 'age': 20, 'score': 88}
    

    相关文章

      网友评论

          本文标题:pickle序列化存储

          本文链接:https://www.haomeiwen.com/subject/bjjxzhtx.html