python3 shelve模块的详解

发布时间 - 2026-01-11 02:14:55    点击率:

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。

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


# python3  # shelve模块的详解  # Python  # shelve的实例详解  # 使用Python解析JSON数据的基本方法  # Python操作json数据的一个简单例子  # Python3中的json模块使用详解  # 简单介绍Python中的JSON模块  # python pickle 和 shelve模块的用法  # 举例简单讲解Python中的数据存储模块shelve的用法  # Python使用shelve模块实现简单数据存储的方法  # 详解Python之数据序列化(json、pickle、shelve)  # python实现通过shelve修改对象实例  # python爬取之json、pickle与shelve库的深入讲解  # 是一个  # 希望能  # 掉了  # 可以使用  # 谢谢大家  # 后会  # 先前  # 数据格式  # Apoll  # bigberg  # age  # info  # txt  # time  # class  # Zous  # Luna  # open  # datetime  # dump 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: JavaScript中如何操作剪贴板_ClipboardAPI怎么用  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  如何在宝塔面板创建新站点?  如何快速辨别茅台真假?关键步骤解析  Laravel API资源类怎么用_Laravel API Resource数据转换  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  如何用5美元大硬盘VPS安全高效搭建个人网站?  如何在云指建站中生成FTP站点?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  原生JS获取元素集合的子元素宽度实例  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  Android仿QQ列表左滑删除操作  实例解析Array和String方法  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  详解Android图表 MPAndroidChart折线图  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  Laravel模型事件有哪些_Laravel Model Event生命周期详解  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  如何构建满足综合性能需求的优质建站方案?  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  清除minerd进程的简单方法  Laravel如何使用Eloquent进行子查询  深圳网站制作的公司有哪些,dido官方网站?  Laravel如何处理表单验证?(Requests代码示例)  Laravel如何配置任务调度?(Cron Job示例)  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  如何用VPS主机快速搭建个人网站?  Laravel storage目录权限问题_Laravel文件写入权限设置  微信小程序 闭包写法详细介绍  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  如何在阿里云域名上完成建站全流程?  googleplay官方入口在哪里_Google Play官方商店快速入口指南  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  公司门户网站制作流程,华为官网怎么做?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  微信公众帐号开发教程之图文消息全攻略  音乐网站服务器如何优化API响应速度?  如何续费美橙建站之星域名及服务?  JavaScript数据类型有哪些_如何准确判断一个变量的类型  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  EditPlus 正则表达式 实战(3)  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址