python入门系列15―——shelve

来源:互联网 发布:知乎手机如何发文章 编辑:程序博客网 时间:2024/05/20 10:14

欢迎前往我的个人博客


如果只需要一个简单的存储方案,我们可以使用shelve,高级的我们可以使用SQLite或者pySQLite。

shelve模块都是以键值对的形式保存数据,key必须为字符串,而值可以是python所支持的数据类型


获取一个shelve对象,没有会创建:

sh=shelve.open('Mydb.dat')
插入数据:

import shelvesh=shelve.open('Mydb.dat')sh['a']=['a','b']print sh['a']
接下来看这个例子:

import shelvesh=shelve.open('Mydb.dat')sh['a']=['a','b']sh['a'].append('c')print sh['a']
存储的d到哪里去了呢?其实很简单,d没有写回,你把['a', 'b', 'c']存到了x,当你再次读取s['x']的时候,s['x']只是一个拷贝,而你没有将拷贝写回,所以当你再次读取s['x']的时候,它又从源中读取了一个拷贝,所以,你新修改的内容并不会出现在拷贝中,解决的办法就是,第一个是利用一个缓存的变量,如下所示

import shelvesh=shelve.open('Mydb.dat')sh['a']=['a','b']tmp=sh['a']tmp.append('c')sh['a']=tmpprint sh['a']

删除shelve对象中的某个键值对:

del sh['a']
遍历所有数据:

for item in sh.items():        print('键[{}] = 值[{}]'.format(item[0], sh[item[0]]))
关闭shelve对象:

 sh.close()