Python数据持久化shelve模块用法分析


Posted in Python onJune 29, 2018

本文实例讲述了Python数据持久化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 相关文章推荐
一个超级简单的python web程序
Sep 11 Python
Python代码块批量添加Tab缩进的方法
Jun 25 Python
Python中shapefile转换geojson的示例
Jan 03 Python
Python Pandas 如何shuffle(打乱)数据
Jul 30 Python
python3 selenium自动化测试 强大的CSS定位方法
Aug 23 Python
提升python处理速度原理及方法实例
Dec 25 Python
pytorch-神经网络拟合曲线实例
Jan 15 Python
python日期与时间戳的各种转换示例
Feb 12 Python
Python使用docx模块实现刷题功能代码
Feb 13 Python
PyTorch加载自己的数据集实例详解
Mar 18 Python
Python环境搭建过程从安装到Hello World
Feb 05 Python
Python OpenGL基本配置方式
May 20 Python
python 统计列表中不同元素的数量方法
Jun 29 #Python
python计算两个数的百分比方法
Jun 29 #Python
python统计字母、空格、数字等字符个数的实例
Jun 29 #Python
python中计算一个列表中连续相同的元素个数方法
Jun 29 #Python
Python使用ConfigParser模块操作配置文件的方法
Jun 29 #Python
python计算列表内各元素的个数实例
Jun 29 #Python
python判断设备是否联网的方法
Jun 29 #Python
You might like
PHP获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
node在两个div之间移动,用ztree实现
2013/03/06 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
2013/10/24 Javascript
jquery选择器之属性过滤选择器详解
2014/01/27 Javascript
点击显示指定元素隐藏其他同辈元素的方法
2014/02/19 Javascript
Nodejs关于gzip/deflate压缩详解
2015/03/04 NodeJs
总结AngularJS开发者最常犯的十个错误
2016/08/31 Javascript
整理关于Bootstrap模态弹出框的慕课笔记
2017/03/29 Javascript
JS按条件 serialize() 对应标签的使用方法
2017/07/24 Javascript
Angular4.0中引入laydate.js日期插件的方法教程
2017/12/25 Javascript
JS实现动态生成html table表格的方法分析
2018/07/11 Javascript
微信小程序开发背景图显示功能
2018/08/08 Javascript
nodejs基础之多进程实例详解
2018/12/27 NodeJs
[01:09:50]VP vs Pain 2018国际邀请赛小组赛BO2 第二场
2018/08/20 DOTA
ptyhon实现sitemap生成示例
2014/03/30 Python
python使用xlrd模块读写Excel文件的方法
2015/05/06 Python
python验证身份证信息实例代码
2019/05/06 Python
Django单元测试中Fixtures的使用方法
2020/02/26 Python
.img/.hdr格式转.nii格式的操作
2020/07/01 Python
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
Woods官网:加拿大最古老、最受尊敬的户外品牌之一
2020/09/12 全球购物
交通专业个人自荐信格式
2013/09/23 职场文书
材料成型专业个人求职信范文
2013/09/25 职场文书
银行会计职员个人的自我评价
2013/09/29 职场文书
施工工地安全标语
2014/06/07 职场文书
优秀纪检干部材料
2014/08/27 职场文书
二手房购房协议书范本
2014/10/05 职场文书
2015年学生会干事工作总结
2015/04/09 职场文书
廉洁自律证明
2015/06/24 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书
http通过StreamingHttpResponse完成连续的数据传输长链接方式
2022/02/12 Python
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
2022/05/11 Servers