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实现的登录与提交表单数据功能示例

python实现的登录与提交表单数据功能示例

本文实例讲述了python实现的登录与提交表单数据功能。分享给大家供大家参考,具体如下: # !/usr/bin/env python # -*- coding: utf-8 -*-...

python处理大日志文件

本文实例为大家分享了python处理大日志文件的具体代码,供大家参考,具体内容如下 # coding=utf-8 import sys import time class Ta...

python3 webp转gif格式的实现示例

使用PIL库,python3安装需要使用 pip install pillow from PIL import Image import os import re imgP...

python图像处理之镜像实现方法

python图像处理之镜像实现方法

本文实例讲述了python图像处理之镜像实现方法。分享给大家供大家参考。具体分析如下: 图像的镜像变化不改变图像的形状。图像的镜像变换分为三种:水平镜像、垂直镜像、对角镜像 设图像的大小...

pyQT5 实现窗体之间传值的示例

pyQT5 实现窗体之间传值的示例

准备 一个MainWindow和一个WidgetForm,总代码如下 # -*- coding: utf-8 -*- from PyQt5 import QtWidgets fr...