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正则表达式去掉数字中的逗号(python正则匹配逗号)
Dec 25 Python
学习python之编写简单乘法口诀表实现代码
Feb 27 Python
django使用xlwt导出excel文件实例代码
Feb 06 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
May 04 Python
cmd运行python文件时对结果进行保存的方法
May 16 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
python开发游戏的前期准备
May 05 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
Jul 10 Python
Django基础知识 web框架的本质详解
Jul 18 Python
使用 python pyautogui实现鼠标键盘控制功能
Aug 04 Python
Django bulk_create()、update()与数据库事务的效率对比分析
May 15 Python
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
Jun 29 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
抓取并下载CSS中所有图片文件的php代码
2011/09/26 PHP
用Laravel轻松处理千万级数据的方法实现
2020/12/25 PHP
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
javascript 数组排序函数
2009/08/20 Javascript
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
2010/01/22 Javascript
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
2011/05/02 Javascript
JS日期和时间选择控件升级版(自写)
2013/08/02 Javascript
js中通过父级进行查找定位元素
2014/06/15 Javascript
Javascript之Date对象详解
2016/06/07 Javascript
深入浅析JavaScript中的3DES
2016/08/24 Javascript
js鼠标经过tab选项卡时实现切换延迟
2017/03/24 Javascript
Nodejs中的JWT和Session的使用
2018/08/21 NodeJs
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
Vue项目中Api的组织和返回数据处理的操作
2019/11/04 Javascript
vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)
2020/03/07 Javascript
详解vue 组件注册
2020/11/20 Vue.js
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python中用于转换字母为小写的lower()方法使用简介
2015/05/19 Python
Django发送html邮件的方法
2015/05/26 Python
Python 编程速成(推荐)
2019/04/15 Python
PyTorch: 梯度下降及反向传播的实例详解
2019/08/20 Python
利用scikitlearn画ROC曲线实例
2020/07/02 Python
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
详解HTML5将footer置于页面最底部的方法(CSS+JS)
2018/10/11 HTML / CSS
如何在Canvas上的图形/图像绑定事件监听的实现
2020/09/16 HTML / CSS
香港No.1得奖零食网:香港零食大王
2016/07/22 全球购物
台湾母婴用品购物网站:Infant婴之房
2018/06/15 全球购物
写出一个方法实现冒泡排序
2016/07/08 面试题
外语系大学生自荐信范文
2014/03/01 职场文书
产品质量承诺书
2014/03/27 职场文书
环境监测与治理技术专业求职信
2014/07/06 职场文书
法定代表人证明书
2014/11/28 职场文书
参观邀请函范文
2015/02/02 职场文书
Java 在线考试云平台的实现
2021/11/23 Java/Android
vue中div禁止点击事件的实现
2022/04/02 Vue.js