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 yield使用方法示例
Dec 04 Python
Python下的Mysql模块MySQLdb安装详解
Apr 09 Python
Python中的引用和拷贝浅析
Nov 22 Python
python获取本机mac地址和ip地址的方法
Apr 29 Python
window下eclipse安装python插件教程
Apr 24 Python
python在ubuntu中的几种安装方法(小结)
Dec 08 Python
Python数据拟合与广义线性回归算法学习
Dec 22 Python
基于Python实现的ID3决策树功能示例
Jan 02 Python
matplotlib subplots 调整子图间矩的实例
May 25 Python
Python整数对象实现原理详解
Jul 01 Python
python 引用传递和值传递详解(实参,形参)
Jun 05 Python
Keras 快速解决OOM超内存的问题
Jun 11 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安全编程之加密功能
2006/10/09 PHP
php中选择什么接口(mysql、mysqli)访问mysql
2013/02/06 PHP
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
php读取csv实现csv文件下载功能
2013/12/18 PHP
php设计模式之委托模式
2016/02/13 PHP
PHP+Ajax实现验证码的实时验证
2016/07/20 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
nodejs 后缀名判断限制代码
2011/03/31 NodeJs
深入理解javascript动态插入技术
2013/11/12 Javascript
javascript判断chrome浏览器的方法
2014/03/26 Javascript
常用的JavaScript模板引擎介绍
2015/02/28 Javascript
jQuery与getJson结合的用法实例
2015/08/07 Javascript
巧用数组制作图片切换js代码
2016/11/29 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
Cookies 和 Session的详解及区别
2017/04/21 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
ES6 Object方法扩展的应用实例分析
2019/06/25 Javascript
Vue解析带html标签的字符串为dom的实例
2019/11/13 Javascript
[02:56]DOTA2上海特锦赛小组赛解说FreeAgain采访花絮
2016/02/27 DOTA
[04:10]2016国际邀请赛中国区预选赛第二日TOP10精彩集锦
2016/06/28 DOTA
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
移动端Html5中百度地图的点击事件
2019/01/31 HTML / CSS
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
LUISAVIAROMA中国官网:时尚奢侈品牌购物网站
2020/11/01 全球购物
屈臣氏越南官网:Watsons越南
2021/01/14 全球购物
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
请用Python写一个获取用户输入数字,并根据数字大小输出不同信息的脚本
2014/05/20 面试题
毕业生造价工程师求职信
2013/10/17 职场文书
《识字五》教学反思
2014/03/01 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
领导批评与自我批评范文
2014/10/16 职场文书
新郎新娘答谢词
2015/01/04 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
《圆的周长》教学反思
2016/02/17 职场文书