首页 > 代码库 > python的shelve模块
python的shelve模块
shelve
shelve是一额简单的数据存储方案,他只有一个函数就是open(),这个函数接收一个参数就是文件名,并且文件名必须是.bat类型的。然后返回一个shelf对象,你可以用他来存储东西,就可以简单的把他当作一个字典,当你存储完毕的时候,就调用close函数来关闭
这个有一个潜在的小问题,如下:
import shelve list = [1, 2, 3] she = shelve.open(‘test.dat‘) she[‘d‘] = list she[‘d‘].append(‘f‘)print(she[‘d‘])
你会发现,打印后,没有‘f’ ,存储的f到哪里去了呢?其实很简单,d没有写回,你把[1,2,3]存到了d,当你再次读取she[‘d‘]的时候,she[‘d‘]只是一个拷贝,而你没有将拷贝写回,所以当你再次读取she[‘d‘]的时候,它又从源中读取了一个拷贝,所以,你新修改的内容并不会出现在拷贝中,解决的办法就是,第一个是利用一个缓存的变量,如下所示
import shelve list = [1, 2, 3] she = shelve.open(‘test.dat‘) she[‘d‘] = list temp = she[‘d‘] temp.append(‘f‘) she[‘d‘] = temp print(she[‘d‘])
这样返回的结果就有‘f’了。
不过在shelve模块中,key必须为字符串,而值可以是python所支持的数据类型。
python的shelve模块
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。