python3 shelve模块的详解


Posted in Python onJuly 08, 2017

python3 shelve模块的详解

一、简介

在python3中我们使用json或者pickle持久化数据,能dump多次,但只能load一次,因为先前的数据已经被后面dump的数据覆盖掉了。如果我们想要实现dump和load多次,可以使用shelve模块。shelve模块可以持久化所有pickle所支持的数据类型。

二、持久化数据

1、数据持久化

import shelve
import datetime
 
info = {'name': 'bigberg', 'age': 22}
name = ['Apoll', 'Zous', 'Luna']
t = datetime.datetime.now()
 
with shelve.open('shelve.txt') as f:
  f['name'] = name  # 持久化列表
  f['info'] = info     # 持久化字典
  f['time'] = t      # 持久化时间类型

执行代码后会生成3个文件:shelve.txt.bak、shelve.txt.dat、shelve.txt.dir。

shelve.txt.bak 的内容

'info', (512, 45)
'name', (0, 42)
'time', (1024, 44)

shelve.txt.dat

�]q (X  ApollqX  ZousqX  Lunaqe.                                                                                                                                                                                                                                           �}q (X  ageqKX  nameqX  bigbergqu.                                                                                                                                                                                                                                          �cdatetime
datetime
q C
�"
2�q�qRq.

shelve.txt.dir 的内容

'info', (512, 45)
'name', (0, 42)
'time', (1024, 44)

2、数据读取

我们使用get来获取数据

import shelve
 
with shelve.open('shelve.txt') as f:
  n = f.get('name')
  i = f.get('info')
  now = f.get('time')
 
print(n)
print(i)
print(now)
 
#输出
 
['Apoll', 'Zous', 'Luna']
{'age': 22, 'name': 'bigberg'}
2017-07-08 11:07:34.865022

1、shelve模块是一个简单的key,value将内存数据通过文件持久化的模块。

2、shelve模块可以持久化任何pickle可支持的python数据格式。

3、shelve就是pickle模块的一个封装。

4、shelve模块是可以多次dump和load。

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
Python实现的中国剩余定理算法示例
Aug 05 Python
详解Numpy中的广播原则/机制
Sep 20 Python
python 将有序数组转换为二叉树的方法
Mar 26 Python
Python实现的排列组合、破解密码算法示例
Apr 12 Python
python利用Opencv实现人脸识别功能
Apr 25 Python
如何利用Python模拟GitHub登录详解
Jul 15 Python
Python三元运算与lambda表达式实例解析
Nov 30 Python
浅谈Python访问MySQL的正确姿势
Jan 07 Python
30行Python代码实现高分辨率图像导航的方法
May 22 Python
python asyncio 协程库的使用
Jan 21 Python
python图片灰度化处理的几种方法
Jun 23 Python
浅析Python实现DFA算法
Jun 26 Python
Python基于scapy实现修改IP发送请求的方法示例
Jul 08 #Python
Python开发微信公众平台的方法详解【基于weixin-knife】
Jul 08 #Python
python 中random模块的常用方法总结
Jul 08 #Python
Python调用微信公众平台接口操作示例
Jul 08 #Python
HTML中使用python屏蔽一些基本功能的方法
Jul 07 #Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
Jul 07 #Python
浅谈Python中的可变对象和不可变对象
Jul 07 #Python
You might like
mysql数据库差异比较的PHP代码
2012/02/05 PHP
基于php和mysql的简单的dao类实现crud操作功能
2014/01/27 PHP
php多重接口的实现方法
2015/06/20 PHP
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
jquery 圆形旋转图片滚动切换效果
2011/01/19 Javascript
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
JS保存和删除cookie操作 判断cookie是否存在
2013/11/13 Javascript
jQuery实现首页顶部可伸缩广告特效代码
2015/04/15 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
由ReactJS的Hello world说开来
2015/07/02 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
nodejs 终端打印进度条实例代码
2017/04/22 NodeJs
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
Python中的rfind()方法使用详解
2015/05/19 Python
Python向日志输出中添加上下文信息
2017/05/24 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
python将字典列表导出为Excel文件的方法
2019/09/02 Python
Pytorch中.new()的作用详解
2020/02/18 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
python如何绘制疫情图
2020/09/16 Python
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
学生自我鉴定范文
2013/10/04 职场文书
小学班主任培训方案
2014/06/04 职场文书
合作意向书
2014/07/30 职场文书
领导干部对照检查材料
2014/08/24 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
会议通知
2015/04/15 职场文书
医院合作意向书范本
2015/05/08 职场文书
八月一日观后感
2015/06/10 职场文书
治理商业贿赂工作总结
2015/08/10 职场文书
2016优秀护士先进个人事迹材料
2016/02/25 职场文书
幼儿园中班教学反思
2016/03/03 职场文书
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python
解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题
2021/07/01 Java/Android