python-shelve模块详解-------可以用类似字典的形式持久化存储

pythonshelve --- Python 对象持久化 阅读详情

shelve 模块

shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式

使用案例:

import shelve
db1 = shelve.open('shelve_db1')
db1['dic'] = {'int':12, 'float':2.5, 'string':'shelve db'}  
#直接对文件句柄[key]操作,就可以存入数据
db1.close()

且重要的是它还会直接在打开的当前目录生成三个文件:
shelve.db1.bak
shelve.db1.dat
shelve.db1.dir

其中shelve.db1.dat 存储的就是b字节数据类型的数据,
bak和dir后缀的就可能是和数据库相关的设计缓存之类的东西了。
注:文件生成后,我们可以将前面的这一段生成shelve db的代码先行注释掉,不影响下面的继续测试操作。

db1 = shelve.open('shelve_db1')
existing = db1['dic']  
# 取出数据的时候也只需要直接用字典的操作方法获取即可,但是如果key不存在会报错
db1.close()
print(type(existing), existing)
# <class 'dict'> {'string': 'Shelve db', 'float': 2.5, 'int': 12}

例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

import shelve

 

= shelve.open('shelve_test'#打开一个文件

 

class Test(object):

    def __init__(self,n):

        self.n = n

 

 

= Test(1

t2 = Test(12)

 

name = ["alex","rain","test"]

d["test"= name #持久化列表

d["t1"= t      #持久化类

d["t2"= t2

 

d.close()

 

 

结:
1、shelve模块将内存数据以字典的类型(key,value)通过文件持久化,模拟出简单的db效果。
2、shelve模块可以持久化任何pickle可支持的python数据格式,但是它的key必需得是字符串。
3、shelve可以看作是pickle模块的一个封装,但它实现了可以多次dump(后面的dump不会覆盖前面的)和多次load。
4、shelve访问己有key时,实际上取出的是数据源给出的一份拷贝,
所以对于拷贝做出的增加和删除等操作都需要用writeback=True参数才能实现写入回源中进行修改。

chatgpt赋能pythonPython怎么持久化存储字典数据 本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。 阅读详情

相关推荐

PythonShelve 模块

数据持久化的方法多种多样,从简单的文本文件(CSV, JSON, XML)到复杂的关系型数据库(MySQL, PostgreSQL, SQLite)和非关系型数据库(Redis, MongoDB),每种方案都有其特定的适用场景和优劣。然而,对于Python开发者而言,有时我们需要一种介于“普通文件存储”和“完整数据库系统”之间的轻量级解决方案——它既能提供比纯文本文件更便捷的结构化数据访问方式,又无需部署和维护一个复杂的数据库服务器。正是在这样的背景下,Python标准库中的模块应运而生。模块提供了一个简单

宅男很神经 1360

bak文件的奥秘,一次性解析!

在数字时代,数据已经成为我们生活和工作中不可或缺的一部分。而“.bak”文件作为数据保护和管理的重要工具,其价值和意义不言而喻。通过本文的探讨,我们深入了解了“.bak”文件的起源、本质、应用、管理以及进阶技巧等方面的内容,也澄清了一些常见的误区和迷思。希望这些知识和经验能够帮助你更好地珍惜和利用“.bak”文件,守护你的数据未来。因为在这个充满不确定性的世界里,只有确保数据的安全和可靠,才能让我们更加自信地面对未来的挑战和机遇。

weixin_44904675的博客 3820

Pythonshelve模块详解

Shelve是对象持久化方法,将对象保到文件里面,缺省(即默认)的数据存储文件是二进制的。

m0_72557783的博客 2087

Python中的shelve模块

python.shelve

weixin_46471983的博客 3001

Python shelve简单数据存储

Pythonshelve模块提供了一种简单的数据存储方案,以dict(字典)的形式来操作数据。   #Python版本2.7,使用Notepad++ 6.1.5编写。 #此代码参考自《Python基础教程第2版》。 #database = shelve.open('D:\\python-test\\test.dat')此路径请自行修改。 #运行后请输入?号查看帮助,谢谢。

wdt3385的专栏 986

Python Shelve 模块详解:高效处理大文件的持久化字典

Python shelve模块:轻量级数据持久化工具 Pythonshelve模块提供了一种字典式的数据持久化方案,将键值对存储在磁盘而非内中,特别适合处理大文件。与普通字典不同,shelve通过按需访问磁盘内容实现了高效内管理,支持字典常规操作,但限制键必须为字符串。其持久化特性使得数据在程序关闭后仍可保留,适合地址簿管理等场景。不过,shelve依赖pickle模块在安全风险,且不支持并发访问。对于需要跨会话保又无需复杂数据库的小型项目,shelve提供了一种简单有效的解决方案,但在处理不可

静水深流 2317

Python编程——shelve模块的使用详解(附实例)

1. shelve模块的介绍 (1)shelve模块:         shelve是一个简单的数据存储方案,类似key-value数据库,可以很方便的保python对象,其内部是通过pickle协议来实现数据序列化。shelve只有一个open()函数,这个函数用于打开指定的文件(一个持久的字典),然后返回一个shelf对象。shelf是一种持久的、类似字典的对象。 (2)shelve模...

橘子女侠 9008

python3内置持久化模块shelve心得

内置模块 shelve 可以将任意 Python 对象(即 https://docs.python.org/zh-cn/3.10/library/pickle.html#module-pickle 模块能够处理的任何东西。)以类似字典的对象(shelf 对象)在磁盘上以实现数据的持久保模块 shelve 生成的类似字典的对象 shelf 包含键 key 和 值 value。类字典对象 shelf 的键 key 是普通的字符串。

qslife的专栏 1256

Python基础(14)——shelve模块的详述(shelve.open的详细用法)

一、在已有json和pickle的情况下,为什么用shelve? 使用json或者 pickle 持久化数据,能 dump 多次,但 load 的话只能取到最新的 dump,因为先前的数据已经被后面 dump 的数据覆盖掉了。如果想要实现 dump 多次不被覆盖,可以使用 shelve 模块。 二、shelve模块的特点 shelve 是一个简单的数据存储方案,类似 key-value 数据...

浅浅的博客 7341

python shelve模块的使用及注意点

介绍 shelvepython中一种存储结构化数据的模块,用法跟字典相似,以键值对的形式。基本使用方法: 1.引入模块 import shelve 2.创建数据文件: with shelve.open(filename) as object: object = shelve.open(filename) 两种文件操作的方式均可以。不难看出,对shelf文件数据的读写是不用指定文...

飞行的荷兰猪 3411

Python Shelve模块

前言:昨天刚刚学习练习了shelve模块,特此总结一下。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 一、定义 Shelve是对象持久化方法,将对象保到文件里面,缺省(即默认)的数据存储文件是二进制的。 二、用途 可以作为一个简单的数据存储方案。 三、用法 使用时,只需要使用open函数获取一个shelf对象,然后对数据...

忆薇的博客 1343

pythonshelve模块详解

一、定义 Shelve是对象持久化方法,将对象保到文件里面,缺省(即默认)的数据存储文件是二进制的。 二、用途 可以作为一个简单的数据存储方案。 三、用法 使用时,只需要使用open函数获取一个shelf对象,然后对数据进行增删改查操作,在完成工作、并且将内存储到磁盘中,最后调用close函数变回将数据写入文件。 四、关联模块Anydbm 相同点:1.anydbm,...

a9794666的博客 787

使用 Python Shelve 和 DBM 模块实现简单的数据持久化

shelvePython 的标准库之一,提供了一种方便的持久化存储方式。它允许开发者以键值对的形式存储 Python 对象,数据存储在文件中,使用起来类似字典(dictshelve模块使用pickle模块将对象序列化并保,因此几乎可以存储所有类型的 Python 对象。dbm模块也是 Python 标准库的一部分,提供了一种基于文件的键值对数据库接口。dbm允许使用简单的字符串作为键,支持对键值的持久化存储。与shelve不同,dbm模块更接近于低级数据库操作,通常适合需要高效存储和快速访问的场景。

merlon学习笔记 814

快速入门ShelvePython数据存储利器

Shelve模块Python标准库中的一部分,提供了一种简单的方式来将Python对象持久化到磁盘上。Shelve使用了Python的pickle模块,可以序列化和反序列化Python对象,将它们保到磁盘文件中。这些文件可以被随时重新打开,并从中读取数据,就好像它们仍然在内中一样。使用键值对存储数据,类似字典。可以存储各种Python对象,包括列表、字典、自定义对象等。可以方便地将数据保到磁盘,以及从磁盘中读取数据。

aobulaien001的博客 1633

Python 库手册:shelve 简单存储模块

shelvePython 标准库中提供的简单持久化存储模块,它允许将 Python 的任意可序列化对象(如字典、列表、自定义类等)以键值对的形式存储到一个类似字典的数据库文件中。1、shelve 创建的数据库会生成多个文件(如 .db, .dat, .bak 等),文件名依操作系统和底层库而异。4、修改嵌套对象(如字典、列表)时需特别注意 writeback 参数或手动回写。键必须是字符串,值为任意可 pickle 的对象。2、键必须是字符串(str 类型),值可以是任意可 pickle 的对象。

qq_41176800的博客 1313

Python实战:数据持久化shelve模块

本文详细介绍了Python中的数据持久化shelve模块的原理、使用方法以及在实际编程中的应用。通过具体代码示例,我们了解到shelvePython数据持久化中的重要性。掌握shelve的使用对于实现简单、方便的数据持久化至关重要。

oandy0的博客 647

python 存储_python持久化存储shelve

shelve类似于一个key-value数据库,可以很方便的用来保Python的内对象,其内部使用pickle来序列化数据。简单来说,使用者可以将一个列表、字典、或者用户自定义的类实例保shelve中,下次需要用的时候直接取出来,就是一个Python对象,不需要像传统数据库一样,先取出数据,然后用这些数据重新构造一遍所需要的对象。示例1:#/usr/bin/env python# co...

weixin_39616798的博客 232
上一篇: python subprocess模块的使用 --实现与系统的交互,获取执行命令行结果等作用(FTP项目中C/S交互)
下一篇: 解决沾包问题:python 中网络编程中C/S架构中通过 struck模块制作固定长度的报头 ,从而得到传输数据的总共长度
Python_bh
博客等级 码龄7年 11粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值