Python shelve模块实现解析


Posted in Python onAugust 28, 2019

一、持久化 --shelve

持久化工具

(1)作用:类似字典,用kv对保存数据,存取方式类似于字典

(2)例子:通过一下案例创建了一个数据库,第二个程序我们读取了数据库

#使用shelve创建文件并使用
import shelve
shv = shelve.open(r"shv.db")
shv["one"] = 1
shv["two"] = 2
shv.close()

Python shelve模块实现解析

shv = shelve.open(r"shv.db")
try:
  print(shv["one"])
  print(shv["three"])
except:
  print("打印three时出错了")
finally:
  shv.close()

Python shelve模块实现解析

二.shelve特性

(1)注意:不支持多个应用并行写入,为了解决这个问题,open的时候可以使用writeback=True,注意一点如果不传入这个参数我们后面对数据的更改只会在内存中进行更改,而不会写回数据库

(2)写回问题

shelve不会等待持久化对象进行任何更改

shv = shelve.open(r"shv.db",writeback=True)
try:
  shv["one"] = {"eind":1,"zwei":2,"drei":3}
  one = shv["one"]
  print(one)
#这里就对 数据进行了更改,如果没有上面writeback=True,下面额语句就白写了
  one["eind"] = 100
  print(one)
finally:
  shv.close()

Python shelve模块实现解析

三、源码

d22_4_shelve_module.py

地址:https://github.com/ruigege66/Python_learning/blob/master/d22_4_shelve_module.py

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
简单分析Python中用fork()函数生成的子进程
May 04 Python
python UNIX_TIMESTAMP时间处理方法分析
Apr 18 Python
python实现决策树分类(2)
Aug 30 Python
python函数与方法的区别总结
Jun 23 Python
python用for循环求和的方法总结
Jul 08 Python
关于PyTorch 自动求导机制详解
Aug 18 Python
python multiprocessing多进程变量共享与加锁的实现
Oct 02 Python
Python: 传递列表副本方式
Dec 19 Python
python str字符串转uuid实例
Mar 03 Python
TensorFlow实现批量归一化操作的示例
Apr 22 Python
python推导式的使用方法实例
Feb 28 Python
Django框架中视图的用法
Jun 10 Python
解决python明明pip安装成功却找不到包的问题
Aug 28 #Python
Python 函数list&read&seek详解
Aug 28 #Python
Python collections模块使用方法详解
Aug 28 #Python
对python中的*args与**kwgs的含义与作用详解
Aug 28 #Python
关于python导入模块import与常见的模块详解
Aug 28 #Python
Python datetime包函数简单介绍
Aug 28 #Python
解决python有时候import不了当前的包问题
Aug 28 #Python
You might like
PHP如何编写易读的代码
2007/07/10 PHP
基于php设计模式中单例模式的应用分析
2013/05/15 PHP
回帖脱衣服的图片实现代码
2014/02/15 PHP
PHP读取PPT文件的方法
2015/12/10 PHP
php基于dom实现的图书xml格式数据示例
2017/02/03 PHP
javascript相等运算符与等同运算符详细介绍
2013/11/09 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
js智能获取浏览器版本UA信息的方法
2016/08/08 Javascript
利用jquery实现实时更新歌词的方法
2017/01/06 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
2017/04/07 Javascript
Vue的MVVM实现方法
2017/08/16 Javascript
浅谈在koa2中实现页面渲染的全局数据
2017/10/09 Javascript
js中的闭包学习心得
2018/02/06 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
基于JavaScript canvas绘制贝塞尔曲线
2018/12/25 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
微信小程序引入Vant组件库过程解析
2019/08/06 Javascript
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
详解flask表单提交的两种方式
2018/07/21 Python
Python爬虫爬取Bilibili弹幕过程解析
2019/10/10 Python
python__new__内置静态方法使用解析
2020/01/07 Python
python输出pdf文档的实例
2020/02/13 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
REISS英国官网:伦敦High Street最受欢迎品牌
2016/12/21 全球购物
Joules官网:女士、男士和儿童服装和鞋类
2018/10/23 全球购物
学生自我鉴定模板
2013/12/30 职场文书
幼儿园家长会邀请函
2014/01/15 职场文书
小学母亲节活动方案
2014/03/14 职场文书
品质主管岗位职责
2014/03/16 职场文书
小区文明倡议书
2014/05/16 职场文书
小学教师党员承诺书
2015/04/27 职场文书
2015年党支部书记工作总结
2015/05/21 职场文书
担保书格式范文
2015/09/22 职场文书
python 如何用terminal输入参数
2021/05/25 Python