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 15 Python
用Python计算三角函数之acos()方法的使用
May 15 Python
Python selenium 三种等待方式详解(必会)
Sep 15 Python
pandas 读取各种格式文件的方法
Jun 22 Python
python爬虫获取百度首页内容教学
Dec 23 Python
python感知机实现代码
Jan 18 Python
python 返回一个列表中第二大的数方法
Jul 09 Python
Python socket 套接字实现通信详解
Aug 27 Python
python+selenium 脚本实现每天自动登记的思路详解
Mar 11 Python
如何在VSCode下使用Jupyter的教程详解
Jul 13 Python
python 录制系统声音的示例
Dec 21 Python
教你怎么用Python selenium操作浏览器对象的基础API
Jun 23 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
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
php去掉字符串的最后一个字符附substr()的用法
2011/03/23 PHP
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
PHP函数func_num_args用法实例分析
2015/12/07 PHP
用javascript实现页面打印的三种方法
2007/03/05 Javascript
Javascript学习笔记7 原型链的原理
2010/01/11 Javascript
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
javascript中比较字符串是否相等的方法
2013/07/23 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
vue 点击按钮实现动态挂载子组件的方法
2018/09/07 Javascript
微信小程序授权登陆及每次检查是否授权实例代码
2019/09/18 Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
2019/09/23 Javascript
利用JS如何获取form表单数据
2019/12/19 Javascript
Django 添加静态文件的两种实现方法(必看篇)
2017/07/14 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
Python爬虫设置ip代理过程解析
2020/07/20 Python
python定时截屏实现
2020/11/02 Python
CSS3教程(7):CSS3嵌入字体
2009/04/02 HTML / CSS
HTML5 Canvas的事件处理介绍
2015/04/24 HTML / CSS
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
函授毕业自我鉴定
2014/02/04 职场文书
护士毕业生自荐信
2014/02/07 职场文书
酒店总经理职务说明书
2014/02/26 职场文书
领导接待方案
2014/03/13 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
出纳试用期自我鉴定范文
2014/09/16 职场文书
拾金不昧感谢信范文
2015/01/21 职场文书
2016廉洁教育心得体会
2016/01/20 职场文书
Django与数据库交互的实现
2021/06/03 Python
Python办公自动化解决world文件批量转换
2021/09/15 Python
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技