python3 shelve模块的详解

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。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

您可能感兴趣的文章:

python shelve模块_python3 shelve模块的实例用法讲解相关推荐

  1. python列表split_Python-split()函数实例用法讲解

    在Python中,split() 方法可以实现将一个字符串按照指定的分隔符切分成多个子串,这些子串会被保存到列表中(不包含分隔符),作为方法的返回值反馈回来. split函数用法 split(sep= ...

  2. python shelve模块_python3 shelve模块的详解

    python3 shelve模块的详解 一.简介 在python3中我们使用json或者pickle持久化数据,能dump多次,但只能load一次,因为先前的数据已经被后面dump的数据覆盖掉了.如果 ...

  3. python hashlib模块_python3 hashlib模块

    Python3 hashlib模块和hmac 模块(加密) hashlib 是一个提供了一些流行的hash算法的 Python 标准库.其中所包括的算法有 md5, sha1, sha224, sha ...

  4. python邮件客户端_python3之模块SMTP协议客户端与email邮件MIME对象

    1.smtplib模块的常用类与方法 smtplib模块实现邮件的发送功能,模拟一个stmp客户端,通过与smtp服务器交互来实现邮件发送的功能,可以理解成Foxmail的发邮件功能,在使用之前我们需 ...

  5. python3常用模块_Python3 常用模块1

    os模块 通过os模块我们可以与操作系统交互, 控制文件和文件夹 对文件夹操作 # 判断是否为文件夹 os.path.isdir() # 创建文件夹 os.mkdir() # 删除文件夹 os.rmd ...

  6. python3常用模块_Python3 常用模块

    一.time与datetime模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们 ...

  7. python3 安装模块_python3 Crypto模块的安装与使用

    前言 安装Cryto模块用pip3 install pycrypto老是会报错.搞了半天,最终决定在linux下面去做. 以下流程限于linux系统: Crypto不是自带的模块,需要下载. 我下载了 ...

  8. python3 os模块_python3 os模块

    os模块就是对操作系统进行操作, 这个模块提供了一种使用操作系统相关功能的可移植方式. 1.系统信息 posix.uname_result(sysname='Linux', nodename='lia ...

  9. python3 time模块_python3 time模块

    importtime#strftime获取当前系统格式化时间,%X和%H:%M:%S相等 print(time.strftime("%Y-%m-%d %H:%M:%S"))prin ...

最新文章

  1. android布局共享,布局共享(如所有ACTIVITY拥有相同的布局部分,比如ACTIONBAR,在BASEACTIVITY中写入布局)...
  2. 开源项目JacpFX
  3. OPPO A59s手机系统时间停止运行
  4. kafka 报错:kafka server:Message was too large ,server rejected it to avoid allocation
  5. 福建品品香茶业有限公司业务迁移上云
  6. Magisk —— 安卓新一代的第三方拓展,systemless模式
  7. 消息中间件学习总结(21)——RocketMQ 消息丢失场景分析及如何解决!
  8. bigdecimal判断等于0_Linux | shell脚本-比较判断和运算语句
  9. Windows下打印服务器的管理(二)
  10. R语言data manipulation学习笔记之subset data
  11. onenote标注pdf笔记_无限接近纸质笔记:学生党的 OneNote 使用心得
  12. centos 切换终端_centos进入不同终端的几种方法
  13. 如何在SharePoint中隐藏回收站
  14. 巧用 CSS 实现炫彩三角边框动画
  15. [USACO07DEC]泥水坑Mud Puddles BFS BZOJ 1627
  16. Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F...'
  17. cesium加载动图方案三:通过apng-js库实现
  18. 小红书报告:2023美妆个护白皮书解读
  19. pcl opencv ROS_message三者之间点云和图片类型转换总结
  20. Numpy中outer的应用

热门文章

  1. 挑战微信的社交产品,不应该是什么样的?
  2. CSU 1129:送货到家
  3. mac xrdp远程 linux,远程连接linux桌面之xrdp
  4. systemtap examples
  5. 阿里云Redis 外网访问
  6. qq自带表情包是用html做的吗,腾讯表情设计师:3D版的QQ黄脸表情是这样做出来的...
  7. 机器学习笔记-standford公开课课程学习笔记
  8. java 数组求和_java 实现随机数组输出及求和实例详解
  9. php sha512解密,PHP加密函数 sha256 sha512 sha256_file() sha512_file()
  10. 309、各品牌路由器登录网址大全 路由器默认用户名/密码