shelve模块比pickle更强大

2020-09-10  本文已影响0人  阿登20

一、shelve模块

shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式。

注意:

shelve模块封装了pickle模块,,允许多次dump和load,但只能在python中使用,比pickle要强大许多。

import shelve

f = shelve.open('shelve_test') # 打开文件
names = ['yr','hj','qw','xwf']
info = {'name':['yr','dds'],'age':[20,21]}

f['names'] = names # 持久化列表
f['info_dict'] = info
f.close()

f = shelve.open('shelve_test')
print(list(f.keys())) # ['names', 'info_dict']
print(f['names'][1],f['info_dict']['age'][1])  #  hj 21

del f['names'] # 仅能删除第一层的’k‘值
print(list(f.items())) #  [('info_dict', {'name': ['yr', 'dds'], 'age': [20, 21]})]

f['job'] = ['stu1','stu2'] # 创建
print(list(f.items())) # [('info_dict', {'name': ['yr', 'dds'], 'age': [20, 21]}), ('job', ['stu1', 'stu2'])]

f['job'] = ['s1','s2'] # 修改第一层
print(list(f.items())) # [('info_dict', {'name': ['yr', 'dds'], 'age': [20, 21]}), ('job', ['s1', 's2'])]
上一篇 下一篇

猜你喜欢

热点阅读