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基础教程之类class定义使用方法
Feb 20 Python
Python爬虫框架Scrapy安装使用步骤
Apr 01 Python
归纳整理Python中的控制流语句的知识点
Apr 14 Python
python实现telnet客户端的方法
Apr 15 Python
详谈Python2.6和Python3.0中对除法操作的异同
Apr 28 Python
pandas 两列时间相减换算为秒的方法
Apr 20 Python
浅谈python下含中文字符串正则表达式的编码问题
Dec 07 Python
将Pytorch模型从CPU转换成GPU的实现方法
Aug 19 Python
jupyter notebook 实现matplotlib图动态刷新
Apr 22 Python
解决django 向mysql中写入中文字符出错的问题
May 18 Python
搭建pypi私有仓库实现过程详解
Nov 25 Python
pytorch加载预训练模型与自己模型不匹配的解决方案
May 13 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中的三元运算符使用说明
2011/07/03 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
js读取json的两种常用方法示例介绍
2014/10/19 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
jquery实现两边飘浮可关闭的对联广告
2015/11/27 Javascript
Bootstrap每天必学之标签与徽章
2015/11/27 Javascript
深入理解js promise chain
2016/05/05 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
2017/01/23 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
微信小程序使用wxParse解析html的方法教程
2018/07/06 Javascript
VUE基于NUXT的SSR 服务端渲染
2018/11/30 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
跟老齐学Python之画圈还不简单吗?
2014/09/20 Python
Python常用的文件及文件路径、目录操作方法汇总介绍
2015/05/21 Python
详解python中sort排序使用
2019/03/23 Python
Python any()函数的使用方法
2019/10/28 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
解决pycharm不能自动保存在远程linux中的问题
2021/02/06 Python
建龙钢铁面试总结
2014/04/15 面试题
区三好学生主要事迹
2014/01/30 职场文书
2014年消防工作实施方案
2014/02/20 职场文书
《美丽的小兴安岭》教学反思
2014/02/26 职场文书
法律七进实施方案
2014/03/15 职场文书
市场营销调查计划书
2014/05/02 职场文书
2014教师研修学习体会
2014/07/08 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
自查自纠整改报告
2014/11/06 职场文书
经理岗位职责
2015/02/02 职场文书
医德医风个人总结
2015/02/28 职场文书
农村老人去世追悼词
2015/06/23 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript
Django实现drf搜索过滤和排序过滤
2021/06/21 Python