Python shelve模块实现解析
作者:心悦君兮君不知-睿 发布时间:2023-06-23 16:58:01
标签:python,shelve,模块
一、持久化 --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
来源:https://www.cnblogs.com/ruigege0000/p/11253563.html


猜你喜欢
- 1.实现效果2.实现代码# 导入所需库from tkinter import *import randomclass main:  
- 最近开始学习Qt,结合之前学习过的caffe一起搭建了一个人脸识别登录系统的程序,新手可能有理解不到位的情况,还请大家多多指教。我的想法是用
- matplotlib及相关cmap参数的取值在matplotlib中对于图片的显示有如下方法(这不是重点), 其中有cmap=&ls
- 本文首先介绍在python3中print函数的应用,然后对比在pyhton2中的应用。(本文作者所用版本为3.6.0)首先我们通过help(
- 难道真的要我破解一个么?算了,正好试试我的Python水平。 python版 #coding: gbk import httplib, ur
- 一行代码实现灰度图抠图抠图是ps的最基本技能,利用python可以实现用一行代码实现灰度图抠图。基础算法是确定图像二值化分割阈值的大津法,将
- 使用distinct在mysql中查询多条不重复记录值的解决办法如何使用distinct在mysql中查询多条不重复记录值?有时候想用dis
- 背景工作中,当我们需要对字符串按照某个字符串切分成字符串数组数时,常用到strings.Split()最近在使用过程中踩到了个坑,后对踩坑原
- 近来有客户要求用table显示一大串数据,由于滚动后就看不到表头,很不方便,所以想到这个效果。上次做table排序对table有了一些了解,
- python中reduce和map简介map(func,seq1[,seq2...]) :将函数func作用于给定序列的每个元素,并用一个列
- 一维插值插值不同于拟合。插值函数经过样本点,拟合函数一般基于最小二乘法尽量靠近所有样本点穿过。常见插值方法有拉格朗日插值法、分段插值法、样条
- 最近自己在抢冰墩墩钥匙扣,发现一秒瞬间就没了。于是自己网上学习了一下,写了一个抢购脚本。亲测可用。具体使用步骤如下:一、官网下载火狐浏览器二
- 1. os.listdir()概述os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。例如:dir ='
- 强转int类型会直接对浮点数的小数部分进行截断(无论是正还是负)。还有一种方法是math.ceil和math.floor。无论是正数还是负数
- 前言具有名字的插槽slot使用 中的 "name" 属性绑定元素注意:1,如果没有匹配到 则放到匿名的插槽中2,具名插槽
- 本文实例为大家分享了Python读写Excel表格的具体代码,供大家参考,具体内容如下python读取Excel表格:import xlrd
- 0.摘要本文介绍了生成连续和随机字母表的方法,用于快速生成大量字母数据。主要使用chr()函数,将数字通过ASCII表转换为相应字母。1.c
- jupyter中显示的DataFrame过长时会自动换行(print()显示方式)或自动省略(单元格最后一行直接显示),在一些情况下看上去不
- 1、Caused by: com.MySQL.jdbc.exceptions.jdbc4.CommunicationsException:T
- 1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建