当前位置: 七九推 > IT编程>脚本编程>Python > Python数据持久化shelve模块用法分析

Python数据持久化shelve模块用法分析

2023年01月23日 Python 我要评论
本文实例讲述了Python数据持久化shelve模块用法。分享给大家供大家参考,具体如下:一、简介在python3中我们使用json或者pickle持久化数据,能dump多次,但只能load一次,因为

本文实例讲述了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程序设计有所帮助。

(0)
打赏 微信扫一扫 微信扫一扫

相关文章:

  • Python lambda匿名函数深入讲解

    Python lambda匿名函数深入讲解

    一,python中lambda函数的语法lambda 函数在 python 编程语言中使用频率非常高,使用起来非常灵活、巧妙;lambda 函数是一个匿名函数(... [阅读全文]
  • Python常用队列全面详细梳理

    一,队列和栈一样,队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。队列是一种操作受限制的线性表,进行插入操作…

    2023年01月23日 脚本编程
  • Django使用详解:ORM 的反向查找(related_name)

    Django使用详解:ORM 的反向查找(related_name)

    先定义两个模型,一个是a,一个是b,是一对多的类型。class a(models.model): name= models.charfield('名称', m... [阅读全文]
  • 一文带你了解Python与svg之间的操作

    python 操作 svg 图片的库清单在 python 中,可以使用以下几种库来生成 svg 图片:svgwrite:这是一个简单易用的 python 库,可以用来生成简单的 s…

    2023年01月23日 脚本编程
  • Python向MySQL批量插数据的实例讲解

    Python向MySQL批量插数据的实例讲解

    背景:最近测试web项目需要多条测试数据,sql中嫌要写多条,就看了看python如何向mysql批量插数据(pymysql库)1、向mysql批量插数据imp... [阅读全文]
  • python利用lxml库剩下操作svg图片

    python利用lxml库剩下操作svg图片

    在大多数场景中,我们都用lxml库解析网页源码,但你是否知道,lxml 库也是可以操作 svg 图片的。我们可以使用 lxml 中的 etree 模块来解析 s... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2023  七九推 保留所有权利. 粤ICP备17035492号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com