python基础教程_学习笔记18:标准库:一些最爱——shelve
来源:互联网 发布:知乎 phyton 编辑:程序博客网 时间:2024/05/17 08:53
标准库:一些最爱
shelve
Shelve唯一有趣的函数是open。在调用它的时候(使用文件名作为参数),它会返回一个Shelf对象,可以用它来存储内容。只需要把它当作普通的字典(但是键一定要作为字符串)来操作即可,在完成工作之后,调用它的close方法。
意识到shelve.open函数返回的对象并不是普通的映射是很重要的。
>>> import shelve
>>> s=shelve.open('a.txt')
>>> s['x']=['a','b','c']
>>> s['x'].append('d')
>>> s['x']
['a', 'b', 'c']
‘d’去哪了?
当你在shelf对象中查找元素的时候,这个对象都会根据已经存储的版本进行重新构建,当你将元素赋给某个键的时候,它就被存储了。
上例中的操作如下:
列表[‘a’,’b’,’c’]存储在键x下;
获得存储的表示,并且根据它来创建新的列表,而’d’被添加到这个副本中。修改的版本没有被保存。
最终,再次获得原始版本——没有’d’。
为了正确地使用shelve模块修改存储的对象,必须将临时变量绑定到获得的副本上,并且在它被修改后重新存储这个副本。
>>> temp=s['x']
>>> temp.append('d')
>>> s['x']=temp
>>> s['x']
['a', 'b', 'c', 'd']
还有个解决办法,将open函数的writeback参数设为True。如果这样做,所有从shelf读取或者赋值到shelf的数据结构都会保存在内存(缓存)中,并且只有在关闭shelf的时候才写回到磁盘中。如果处理的数据不大,并且不想考虑这些问题,那么将writeback设为True(确保在最后关闭了shelf)的方法还是不错的。
- python基础教程_学习笔记18:标准库:一些最爱——shelve
- python基础教程_学习笔记13:标准库:一些最爱——sys
- python基础教程_学习笔记14:标准库:一些最爱——re
- python基础教程_学习笔记15:标准库:一些最爱——fileinput
- python基础教程_学习笔记16:标准库:一些最爱——random
- python基础教程_学习笔记17:标准库:一些最爱——time
- python基础教程_学习笔记20:标准库:一些最爱——os
- python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
- Python基础--人们一些最爱的标准库(random time)
- python基础教程_学习笔记3:列表
- python基础教程_学习笔记5:字符串
- python基础教程_学习笔记6:字典
- python基础教程_学习笔记9:抽象
- python基础教程_学习笔记10:异常
- Python——Shelve模块
- python基础教程_学习笔记12:充电时刻——模块
- 《Python 基础教程》学习笔记——字典
- 《Python基础教程》学习笔记——列表
- how to design MongoDB schema
- ZOJ-1163
- 安卓背景图片移动(全屏)
- web前端开发的时候需要养成的习惯
- 人脸识别主要算法原理
- python基础教程_学习笔记18:标准库:一些最爱——shelve
- SAE下创建一个django项目
- Ubuntu12.04下安装Git
- 解决View Hierarchy不能启动
- HDU 3695 Computer Virus on Planet Pandora (AC自动机)
- zoj 3790 Consecutive Blocks(链表重点是思想)
- HDOJ 2067 小兔的棋盘
- 安卓获取屏幕的大小
- 『图形图像』图像基本知识与处理