Python shelve模块实现解析

yipeiwu_com7年前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中安装basemap的教程

在python中安装basemap的教程

1. 确保python环境安装完毕且已配置好环境变量 2. 安装geos: pip install geos 3. 下载.whl文件: (1)pyproj‑1.9.5.1&...

Python函数参数匹配模型通用规则keyword-only参数详解

Python3对函数参数的排序规则更加通用化了,即Python3 keyword-only参数,该参数即为必须只按照关键字传递而不会有一个位置参数来填充的参数。该规则在处理人一多个参数是...

Python3实现发送QQ邮件功能(附件)

本文实例为大家分享了Python3实现发送QQ邮件功能:附件,供大家参考,具体内容如下 可以成功发送邮件附件,但是邮件主要内容无法发送,有空再去找找原因 import smtplib...

python实现ip查询示例

以下代码实现了ip查询功能处理程序 复制代码 代码如下:import os,time def getip(filepath):    ip2city={}&...

Python3使用PySynth制作音乐的方法

Python3使用PySynth制作音乐的方法

本人虽然五音不全,但是听歌还是很喜欢的。希望能利用机器自动制作音乐,本我发现了一个比较适合入门的有趣的开源音乐生成模块 PySynth ,文我们主要讲解下如何Python3使用PySyn...