zoukankan      html  css  js  c++  java
  • 『Pickle』数据结构持久化模块_常用方法记录

    可以把数据结构保存进文件并直接读出,

    不论读取或者是保存,我们都需要借助open()函数,并且是二进制方式(‘wb’,‘rb’)

    json模块可以把字典结构改写为string然后保存,并可以反向读取字典,但是即使是字典数据结构,两个包也是有差别的

    json字典value不支持其他对象只支持python原有的结构,但是json由于是转换为string,所以保存的文件是可以使用文本查看器去读取的

    pickle包则支持各种python的对象,但它写入的是二进制文件,并有自己独特的编码方式,所以是不可以查看的,只能使用python载入

    持久化保存

    #使用pickle模块将数据对象保存到文件
    
    import pickle
    
    data1 = {'a': [1, 2.0, 3, 4+6j],
             'b': ('string', u'Unicode string'),
             'c': None}
    
    selfref_list = [1, 2, 3]
    selfref_list.append(selfref_list)
    
    output = open('data.pkl', 'wb')
    
    # Pickle dictionary using protocol 0.
    pickle.dump(data1, output)
    
    # Pickle the list using the highest protocol available.
    pickle.dump(selfref_list, output, -1)
    
    output.close()
    

     可以看到,我们能够在在一个文件中连续保存多个数据结构。

    读取持久化文件

    #使用pickle模块从文件中重构python对象
    
    import pprint, pickle
    
    pkl_file = open('data.pkl', 'rb')
    
    data1 = pickle.load(pkl_file)
    pprint.pprint(data1)
    
    data2 = pickle.load(pkl_file)
    pprint.pprint(data2)
    
    pkl_file.close()
    

     连续读取即可。

     

  • 相关阅读:
    epii.js简约而不简单的JS模板引擎
    Acwing 165. 小猫爬山
    《将博客搬家到csdn》
    Tourism【codeforces 1200E】
    Middle-Out【codeforces 1231E】(字符串匹配问题)
    super_log (广义欧拉降幂)(2019南京网络赛)
    Different Circle Permutation (HDU
    Knapsack Cryptosystem(状压dp)
    Quadratic equation(二次剩余定理)
    分级(线性dp)
  • 原文地址:https://www.cnblogs.com/hellcat/p/7422048.html
Copyright © 2011-2022 走看看