• python shelve 模块


    一、简介
    
      在python3中我们使用json或者pickle持久化数据,
    能dump多次,但只能load一次,因为先前的数据已经被后面dump的数据覆盖掉了。
    如果我们想要实现dump和load多次,可以使用shelve模块。
    shelve模块可以持久化所有pickle所支持的数据类型。
    
    
    代码:
    #持久化数据
    import shelve
    import datetime
    
    # info = {'name': 'bigberg', 'age': 22}
    # name = ['Apoll', 'Zous', 'Luna']
    # t = datetime.datetime.now()
    #
    # with shelve.open('shelve.txt') as f:
    #     f['name'] = name  # 持久化列表
    #     f['info'] = info  # 持久化字典
    #     f['time'] = t  # 持久化时间类型
    #
    # # 执行代码后会生成3个文件:shelve.txt.bak、shelve.txt.dat、shelve.txt.dir。
    
    
    
    #删除
    # with shelve.open('shelve.txt') as f:
    #     del f['name']
    
    #获取数据:用get
    
    import shelve
    
    # with shelve.open('shelve.txt') as f:
    #     n = f.get('name')
    #     i = f.get('info')
    #     now = f.get('time')
    #
    # print(n)
    # print(i)
    # print(now)
    
    # 输出
    
    

    总结:

    1、shelve模块是一个简单的key,value将内存数据通过文件持久化的模块。
    
    2、shelve模块可以持久化任何pickle可支持的python数据格式。
    
    3、shelve就是pickle模块的一个封装。
    
    4、shelve模块是可以多次dump和load。
  • 相关阅读:
    【NOIp】NOIp2015
    【题解】Luogu P2899 [USACO008JAN] 手机网络 树形dp
    「EZEC-4.5」走方格
    ZJOI2013 K大数查询
    CF765F Souvenirs
    [Vani有约会] 雨天的尾巴 /【模板】线段树合并
    中国剩余定理(CRT / EXCRT)
    洛谷 P1516 青蛙的约会
    CQOI2009 叶子的染色
    CSP2019 Emiya 家今天的饭
  • 原文地址:https://www.cnblogs.com/bluesl/p/9102697.html
Copyright © 2020-2023  润新知