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使用paramiko实现远程拷贝文件的方法
Apr 18 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
Apr 05 Python
Python+PIL实现支付宝AR红包
Feb 09 Python
python接口自动化测试之接口数据依赖的实现方法
Apr 26 Python
python使用turtle绘制国际象棋棋盘
May 23 Python
python自动化之Ansible的安装教程
Jun 13 Python
10分钟用python搭建一个超好用的CMDB系统
Jul 17 Python
python 多进程共享全局变量之Manager()详解
Aug 15 Python
用Python实现校园通知更新提醒功能
Nov 23 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
Mar 16 Python
python基于exchange函数发送邮件过程详解
Nov 06 Python
用Python将GIF动图分解成多张静态图片
Jun 11 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
destoon出现验证码不显示时的紧急处理方法
2014/08/22 PHP
php类的扩展和继承用法实例
2015/06/20 PHP
php使用环形链表解决约瑟夫问题完整示例
2018/08/07 PHP
php更新cookie内容的详细方法
2019/09/30 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
jquery 获取json数据实现代码
2009/04/27 Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
2015/04/12 Javascript
借助FileReader实现将文件编码为Base64后通过AJAX上传
2015/12/24 Javascript
JavaScript入门系列之知识点总结
2016/03/24 Javascript
基于KO+BootStrap+MVC实现的分页控件代码分享
2016/11/07 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
Node.js 进程平滑离场剖析小结
2019/01/24 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
使用Python的内建模块collections的教程
2015/04/28 Python
基于Python实现对PDF文件的OCR识别
2016/08/05 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
2017/09/08 Python
PyQt QCombobox设置行高的方法
2019/06/20 Python
基于Python测试程序是否有错误
2020/05/16 Python
Pandas缺失值2种处理方式代码实例
2020/06/13 Python
屈臣氏马来西亚官网:Watsons马来西亚
2019/06/15 全球购物
Rowdy Gentleman服装和配饰:美好时光
2019/09/24 全球购物
护理专业本科生自荐信
2013/10/01 职场文书
美容院店长岗位职责
2014/04/08 职场文书
党员领导干部承诺书
2014/05/28 职场文书
家庭教育的心得体会
2014/09/01 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
小学语文国培研修日志
2015/11/13 职场文书
如何计划开一家便利店?
2019/07/31 职场文书
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
2021/04/24 Python
ajax请求前端跨域问题原因及解决方案
2021/10/16 Javascript
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis