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的collections模块中namedtuple结构使用示例
Jul 07 Python
利用Python画ROC曲线和AUC值计算
Sep 19 Python
Windows平台Python连接sqlite3数据库的方法分析
Jul 12 Python
利用python求相邻数的方法示例
Aug 18 Python
Django ManyToManyField 跨越中间表查询的方法
Dec 18 Python
Python 下载及安装详细步骤
Nov 04 Python
python文件绝对路径写法介绍(windows)
Dec 25 Python
Python读取VOC中的xml目标框实例
Mar 10 Python
python实现人脸签到系统
Apr 13 Python
构建高效的python requests长连接池详解
May 02 Python
django 实现后台从富文本提取纯文本
Jul 02 Python
详解Django的MVT设计模式
Apr 29 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
某大型网络公司应聘时的笔试题目附答案
2008/03/27 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
PHP微信红包API接口
2015/12/05 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
在laravel中使用Symfony的Crawler组件分析HTML
2017/06/19 PHP
jquery异步请求实例代码
2011/06/21 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
2014/09/13 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
2014/12/15 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
jquery实现Li滚动时滚动条自动添加样式的方法
2015/08/10 Javascript
jQuery超酷平面式时钟效果代码分享
2020/03/30 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
Javascript 事件冒泡机制详细介绍
2016/10/10 Javascript
JS数组操作中的经典算法实例讲解
2017/07/26 Javascript
js实现鼠标拖曳效果
2020/12/30 Javascript
[03:54]DOTA2英雄梦之声_第06期_昆卡
2014/06/23 DOTA
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
使用Python对SQLite数据库操作
2017/04/06 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
python实现求最长回文子串长度
2018/01/22 Python
在Python中获取两数相除的商和余数方法
2018/11/10 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
python程序如何进行保存
2020/07/03 Python
英国领先的杂志订阅网站:Magazine.co.uk
2018/01/25 全球购物
定制iPhone和Macbook保护壳:Slick Case
2018/11/21 全球购物
大学毕业生的自我鉴定
2013/11/30 职场文书
室内设计专业个人的自我评价
2013/12/18 职场文书
物控部经理职务说明书
2014/02/25 职场文书
集中整治工作方案
2014/05/01 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
房屋授权委托书范本
2014/10/07 职场文书
财务整改报告范文
2014/11/05 职场文书
助学金感谢信
2015/01/20 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
部门经理助理岗位职责
2015/04/13 职场文书
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android