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 相关文章推荐
Python3基础之条件与循环控制实例解析
Aug 13 Python
python批量提取word内信息
Aug 09 Python
Python实现二叉堆
Feb 03 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
Aug 08 Python
Python编程之gui程序实现简单文件浏览器代码
Dec 08 Python
一篇文章读懂Python赋值与拷贝
Apr 19 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
Jul 17 Python
妙用itchat! python实现久坐提醒功能
Nov 25 Python
使用keras时input_shape的维度表示问题说明
Jun 29 Python
pycharm-professional-2020.1下载与激活的教程
Sep 21 Python
Python Pandas数据分析工具用法实例
Nov 05 Python
pytorch Dropout过拟合的操作
May 27 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开启opcache提升代码性能
2015/04/26 PHP
HR vs CL BO3 第二场 2.13
2021/03/10 DOTA
如何简单地用YUI做JavaScript动画
2007/03/10 Javascript
自己开发Dojo的建议框架
2008/09/24 Javascript
JavaScript操作XML实例代码(获取新闻标题并分页,并分页)
2010/05/25 Javascript
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
最常用的12种设计模式小结
2011/08/09 Javascript
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
css值转换成数值请抛弃parseInt
2011/10/24 Javascript
动态获取复选框checkbox选中个数的jquery代码
2013/06/25 Javascript
jquery实现的鼠标下拉滚动置顶效果
2014/07/24 Javascript
JavaScript中的类(Class)详细介绍
2014/12/30 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
跟我学习javascript的this关键字
2020/05/28 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
JS遍历页面所有对象属性及实现方法
2016/08/01 Javascript
node+express制作爬虫教程
2016/11/11 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
2018/05/28 jQuery
Vue高版本中一些新特性的使用详解
2018/09/25 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
2020/06/05 Javascript
Python数据库小程序源代码
2019/09/15 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
2019/11/28 Python
Python的pygame安装教程详解
2020/02/10 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
动物学专业毕业生求职信
2013/10/11 职场文书
银行柜员应聘推荐信范文
2013/11/24 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
党员转正意见怎么写
2015/06/03 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
2021/07/07 Servers
各国货币符号大全
2022/02/17 杂记