Python shelve模块实现解析

yipeiwu_com6年前Python基础

一、持久化 --shelve

持久化工具

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

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

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

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

二.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()

三、源码

d22_4_shelve_module.py

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python 采用paramiko 远程执行命令及报错解决

这篇文章主要介绍了python 采用paramiko 远程执行命令及报错解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 imp...

Python 3.3实现计算两个日期间隔秒数/天数的方法示例

Python 3.3实现计算两个日期间隔秒数/天数的方法示例

本文实例讲述了Python 3.3实现计算两个日期间隔秒数/天数的方法。分享给大家供大家参考,具体如下: >>> import datetime >>&...

Python连接DB2数据库

Python连接DB2数据库

在工作中遇到了这样的情况,项目中需要连接IBM的关系型数据库(DB2),关于这方面的库比较稀少,其中 ibm_db 是比较好用的一个库,网上也有教程,但是好像不准确,也不太详细,错误百出...

Python中list查询及所需时间计算操作示例

本文实例讲述了Python中list查询及所需时间计算操作。分享给大家供大家参考,具体如下: # -*-coding=utf-8 -*- #! python2 #filename:...

Numpy之reshape()使用详解

Numpy之reshape()使用详解

如下所示: Numpy中reshape的使用方法为:numpy.reshape(a, newshape, order='C') 参数详解: 1.a: type:array_like(伪数...