shelve

2023-11-10 05:18
文章标签 shelve

本文主要是介绍shelve,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

shelve提供python的持久化操作什么叫持久化操作呢说白话,就是把数据写到硬盘上.
在操作shelve的时候非常的像操作一个字典这个东⻄到后期就像redis差不多.
字典怎么用shelve就怎么用
import shelve
shelf = shelve.open("sylar")  #打开一个文件"sylar"如果没有会自动生成
shelf["jay"] = "周杰伦"
print(shelf['jay'])   #结果:周杰伦
shelf.close()
感觉到了么这个鬼东⻄和字典差不多只不过你的字典是一个文件接下来我们存储 一些复的数据
import shelve
s = shelve.open("sylar")
s["jay"] = {"name":"周杰伦", "age":18, "hobby":"哄⼩小孩"}
print(s['jay']) #{'name': '周杰伦', 'age': 18, 'hobby': '哄⼩小孩'}
s.close()
但是,有坑
import shelve
s = shelve.open("sylar")
s['jay']['name'] = "胡辣汤" #尝试改变字典中的数据
s.close()
s = shelve.open("sylar")
print(s['jay']) # 并没有改变
s.close()
解决方案
import shelve
s = shelve.open("sylar", writeback=True)
s['jay']['name'] = "胡辣汤" # 尝试改变字典中的数据
s.close()
s = shelve.open("sylar")
print(s['jay']) # 改变了.{'name': '胡辣汤', 'age': 18, 'hobby': '哄⼩孩'}
s.close()
writeback=True可以动态的把我们修改的信息写入到文件中而且这个⿁东⻄西还可以删除数据就像字典⼀样上⼀波操作
s = shelve.open("sylar", writeback=True)
del s['jay']
s.close()
s = shelve.open("sylar")
print(s['jay']) # 报错了,没有了
s.close()
s = shelve.open("sylar", writeback=True)
s['jay'] = "周杰伦"
s['wlj'] = "王⼒宏"
s.close()
#
#
s = shelve.open("sylar")
for k in s: # 像字典⼀样遍历
print(k)
print(s.keys()) # 拿到所有key的集合
for k in s.keys():
print(k)
for k, v in s.items(): # 像字典⼀一样操作
print(k, v)
s.close()
综上shelve就当成字典来用就⾏了它比redis还简单.......

转载于:https://www.cnblogs.com/BALCKLIGHTNING/p/9965853.html

这篇关于shelve的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/380558

相关文章

2.4.2 Python存储之shelve

pickle模块只能处理一些不太复杂的数据,当处理复杂数据的时候再用 pickle就会显的很麻烦,于是就有了 shelve shelve是Python标准库中的一个模块 写入数据: >>> import shelve >>> a = shelve.open ("D://shelve.txt") #打开文件 >>> a["name"] = "zhangsa

Python 的 shelve 模块:持久化存储数据的利器

Python 的 shelve 模块是一个简单而强大的工具,用于持久化地存储 Python 对象到磁盘上的文件中,并能够通过键值对的方式进行访问。本文将详细介绍 shelve 模块的各种功能和用法,并提供丰富的示例代码,帮助大家更好地理解和运用这个工具。 shelve 模块概述 shelve 模块提供了一个简单的存储持久对象的方式,类似于字典,可以通过键访问值。它使用了 pickle 模块来序

shelve函数

# -*- coding: cp936 -*-import sys,shelvedef main():database = shelve.open("d:\\test.dat")try:while True:cmd = getcmd()if cmd == "s":store(database)elif cmd == "c":search(database)elif cmd == "q":ret

​shelve --- Python 对象持久化​

源代码: Lib/shelve.py "Shelf" 是一种持久化的类似字典的对象。 与 "dbm" 数据库的区别在于 Shelf 中的值(不是键!)实际上可以为任意 Python 对象 --- 即 pickle 模块能够处理的任何东西。 这包括大部分类实例、递归数据类型,以及包含大量共享子对象的对象。 键则为普通的字符串。 shelve.open(filename, flag='c'

​shelve --- Python 对象持久化​

源代码: Lib/shelve.py "Shelf" 是一种持久化的类似字典的对象。 与 "dbm" 数据库的区别在于 Shelf 中的值(不是键!)实际上可以为任意 Python 对象 --- 即 pickle 模块能够处理的任何东西。 这包括大部分类实例、递归数据类型,以及包含大量共享子对象的对象。 键则为普通的字符串。 shelve.open(filename, flag='c'

Python必备工具shelve与dbm全面解析!

更多资料获取 📚 个人网站:ipengtao.com 当涉及存储大量数据并且需要高效访问时,Python开发人员常常寻找适当的工具。shelve和dbm模块是Python中用于本地持久化存储数据的两个强大工具。它们允许开发人员以键值对的形式存储数据,并支持快速的检索和更新操作。在本篇博客文章中,我们将深入探讨这两个模块,展示它们的优势和应用场景,并提供更加丰富的示例代码。 shel

深入探究Python中的JSON、Pickle和Shelve模块:特性与区别

更多资料获取 📚 个人网站:ipengtao.com 在Python中,处理数据序列化和持久化是极其重要的。JSON、Pickle和Shelve是三种常用的模块,它们提供了不同的方法来处理数据的序列化和持久化。本文将深入研究这三个模块,探讨它们的特性、用法以及各自的优缺点。 JSON模块 JSON(JavaScript Object Notation)是一种轻量级数据交换格式,易

python对象持久化shelve模块

1 python对象持久化shelve模块 1.1 python序列化对象 序列化对象:将对象转换为可以存储或传输的形式。 (1) 用于存储:将对象的字节序列存储到文件中,程序退出后不会消失,便于后续使用。 (2) 用于传输:发送方把对象转换为字节序列,接收方字节序列恢复为对象。 反序列化:将存储或传输的字节序列恢复为对象。 NO模块描述1picklepython对象和字节串间的序列化

Python3 Python对象持久化(pickle / shelve)

Python3 Python对象持久化(pickle / shelve) 本文由 Luzhuo 编写,转发请保留该信息. 原文: http://blog.csdn.net/rozol/article/details/71081854 以下代码以Python3.6.1为例 Less is more! pickle #coding=utf-8# pickledemo.py

python configparser 数组_python 序列化 pickle shelve json configparser

1. 什么是序列化 我们把变量从内存中变成可存储或传输的过程称之为序列化。 序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。 反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。 举例:大家应该都玩过魔兽争霸,应该知道该游戏有一个存档的功能,我每次不想玩得时候就可以存档,然后再玩得时候我们根本不需要重新开始玩,只需要读档就可以了。我们现