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基于二分查找实现求整数平方根的方法
May 12 Python
用Eclipse写python程序
Feb 10 Python
Python PyQt4实现QQ抽屉效果
Apr 20 Python
详解python3中tkinter知识点
Jun 21 Python
python实现对csv文件的列的内容读取
Jul 04 Python
python pyheatmap包绘制热力图
Nov 09 Python
numpy.where() 用法详解
May 27 Python
python requests模拟登陆github的实现方法
Dec 26 Python
Python类的绑定方法和非绑定方法实例解析
Mar 04 Python
Django ModelForm操作及验证方式
Mar 30 Python
通俗易懂了解Python装饰器原理
Sep 17 Python
浅析PyCharm 的初始设置(知道)
Oct 12 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
php生成验证码函数
2015/10/20 PHP
Laravel网站打开速度优化的方法汇总
2017/07/16 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
IE event.srcElement和FF event.target 功能比较
2010/03/01 Javascript
某页码显示的helper 少量调整,另附js版
2010/09/12 Javascript
js判断浏览器类型的方法
2013/08/07 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
JavaScript实现把rgb颜色转换成16进制颜色的方法
2015/06/01 Javascript
JS基于FileSystemObject创建一个指定路径的TXT文本文件
2015/08/05 Javascript
jQuery实现的图文高亮滚动切换特效实例
2015/08/10 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
2016/04/14 Javascript
jquery pagination分页插件使用详解(后台struts2)
2017/01/22 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
2017/06/17 Javascript
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
2019/09/27 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
2019/11/25 Javascript
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
Python文件读取的3种方法及路径转义
2015/06/21 Python
Python编程入门之Hello World的三种实现方式
2015/11/13 Python
Python语言实现获取主机名根据端口杀死进程
2016/03/31 Python
Python如何用wx模块创建文本编辑器
2020/06/07 Python
新手学python应该下哪个版本
2020/06/11 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
localStorage、sessionStorage使用总结
2017/11/17 HTML / CSS
Html5之title吸顶功能
2018/06/04 HTML / CSS
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
JavaScript获取当前url根目录(路径)
2014/02/19 面试题
基于Python 函数和方法的区别说明
2021/03/24 Python
市场营销专业毕业生求职信
2014/07/21 职场文书
2014年家长学校工作总结
2014/11/20 职场文书
还款承诺书范本
2015/01/20 职场文书
Python实现仓库管理系统
2022/05/30 Python
win10输入法不见了只能打出字母怎么解决?
2022/08/05 数码科技