Python shelve 模块
使用json或者pickle持久化数据,能dump多次,但load的话只能取到最新的dump,
因为先前的数据已经被后面dump的数据覆盖掉了。
如果想要实现dump多次不被覆盖,就可以想到使用shelve模块。
shelve模块可以持久化所有pickle所支持的数据类型。
写入:
import shelve d = shelve.open('shelve_test') # 打开一个文件 info = {'age': 18, 'blog': 'https://www.cnblogs.com/dbf-'} name = ['d', 'b', 'f', '-'] d['name'] = name # name的key为‘name’ d['info'] = info # info的key为‘info’ d.close()
读出:
import shelve d = shelve.open('shelve_test') for k, v in d.items(): print(k, v) # 全部读出 print('\n') print(d.get('info')) # 读一项
输出结果:
name ['d', 'b', 'f', '-']
info {'blog': 'https://www.cnblogs.com/dbf-', 'age': 18}
{'blog': 'https://www.cnblogs.com/dbf-', 'age': 18}