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 相关文章推荐
Django内容增加富文本功能的实例
Oct 17 Python
利用numpy和pandas处理csv文件中的时间方法
Apr 19 Python
Python实现对文件进行单词划分并去重排序操作示例
Jul 10 Python
Python爬虫实现简单的爬取有道翻译功能示例
Jul 13 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
Oct 11 Python
对python中list的拷贝与numpy的array的拷贝详解
Jan 29 Python
opencv与numpy的图像基本操作
Mar 08 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
Dec 09 Python
通过自学python能找到工作吗
Jun 21 Python
Python常驻任务实现接收外界参数代码解析
Jul 21 Python
python实现马丁策略回测3000只股票的实例代码
Jan 22 Python
关于 Python json中load和loads区别
Nov 07 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
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
PHP 第二节 数据类型之字符串类型
2012/04/28 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
Yii使用migrate命令执行sql语句的方法
2016/03/15 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
2016/05/20 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
thinkPHP自定义类实现方法详解
2016/11/30 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
2016/12/23 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
JavaScript Sort 表格排序
2009/10/31 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
js中的屏蔽的使用示例
2013/07/30 Javascript
js返回前一页刷新本页重载页面
2014/07/29 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
js实现圆盘记速表
2015/08/03 Javascript
基于jquery实现轮播焦点图插件
2016/03/31 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
2016/08/15 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
2017/09/21 Javascript
React 使用browserHistory项目访问404问题解决
2018/06/01 Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
2019/08/29 Javascript
python输入错误密码用户锁定实现方法
2017/11/27 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
python安装dlib库报错问题及解决方法
2020/03/16 Python
美国最大的城市服装和运动鞋零售商:Jimmy Jazz
2016/11/19 全球购物
食堂员工工作职责
2013/12/18 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
2014年自愿离婚协议书
2014/10/10 职场文书
男方婚前保证书
2015/02/28 职场文书
2015个人年度工作总结范文
2015/05/28 职场文书
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang
Nginx 502 bad gateway错误解决的九种方案及原因
2022/08/14 Servers