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 相关文章推荐
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
Jan 23 Python
使用Python 正则匹配两个特定字符之间的字符方法
Dec 24 Python
Python编程在flask中模拟进行Restful的CRUD操作
Dec 28 Python
对python 多线程中的守护线程与join的用法详解
Feb 18 Python
如何用Python来理一理红楼梦里的那些关系
Aug 14 Python
python打造爬虫代理池过程解析
Aug 15 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
Sep 15 Python
python 实现批量替换文本中的某部分内容
Dec 13 Python
Python库安装速度过慢解决方案
Jul 14 Python
python 使用建议与技巧分享(四)
Aug 18 Python
4款Python 类型检查工具,你选择哪个呢?
Oct 30 Python
Python 数据可视化之Matplotlib详解
Nov 02 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
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
frename PHP 灵活文件命名函数 frename
2009/09/09 PHP
PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例
2016/01/07 PHP
分享一个漂亮的php验证码类
2016/09/29 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
Laravel5.4框架中视图共享数据的方法详解
2019/09/05 PHP
JS页面延迟执行一些方法(整理)
2013/11/11 Javascript
js判断元素是否隐藏的方法
2014/06/09 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
2017/07/24 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
vue基于Echarts的拖拽数据可视化功能实现
2020/12/04 Vue.js
python定时器使用示例分享
2014/02/16 Python
python计算auc指标实例
2017/07/13 Python
Python抽象和自定义类定义与用法示例
2018/08/23 Python
用python3教你任意Html主内容提取功能
2018/11/05 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
python3实现字符串操作的实例代码
2019/04/16 Python
Python二维码生成识别实例详解
2019/07/16 Python
python tkinter实现屏保程序
2019/07/30 Python
python求前n个阶乘的和实例
2020/04/02 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
Python变量格式化输出实现原理解析
2020/08/06 Python
vue.js刷新当前页面的实例讲解
2020/12/29 Python
写一个用矩形法求定积分的通用函数
2012/11/08 面试题
经理管理专业自荐信范文
2013/12/31 职场文书
高中毕业自我评价
2014/02/08 职场文书
《浅水洼里的小鱼》听课反思
2014/02/28 职场文书
商务日语专业毕业生自荐信
2014/03/27 职场文书
外语系毕业生求职自荐信
2014/04/12 职场文书
《画家乡》教学反思
2014/04/22 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
2014年帮扶工作总结
2014/11/26 职场文书
房产公证书
2015/01/23 职场文书
村官2015年度工作总结
2015/10/14 职场文书
Python基础之tkinter图形化界面学习
2021/04/29 Python