python3 shelve模块的详解

yizhihongxing

Python3 Shelve模块的详解

简介

shelve 模块是 python 标准库中一个简单的键值存储系统,使用文件作为存储介质,提供了一个像字典一样的成员访问和一个 open() 方法用于打开持久化存储器。使用 shelve 模块,我们可以将数据存储在磁盘上,并提供与内存中字典相同的访问方式。

特性

  • 自动将数据序列化为二进制格式,然后将其存储在磁盘或内存中。
  • 能够自动对数据执行任何 pickle 可以处理的操作,包括自定义类和循环引用。
  • 支持类型方便的可读存储模式。
  • 支持字符串和 bytes 索引键。

常用方法

  • shelve.open(filename, flag='c', protocol=None, writeback=False):打开持久化存储器。flag可以是以下值之一:
  • 'r':只读模式打开现有的数据库
  • 'w':排他性、写入模式打开现有的数据库
  • 'c':如果新建的,否则打开现有的数据库。
  • 'n':总是为新数据库打开空的数据库

  • dict=shelve.open(filename, flag='c', protocol=None, writeback=False):以 dict 数据结构打开数据库。

  • dict[key]=value:设置索引为 key 的值。

  • dict[key]:返回 key 对应的值。

  • dict.get(key, default=None):获取 key 对应的值,如果不存在,则返回 default 所指定的默认值。

  • dict.keys():返回所有的 key。

  • dict.values():返回所有的值。

  • dict.items():以列表形式返回所有项。

  • dict.update(E):应用字典 E 中的项更新数据库。

  • dict.pop(key, default=None):从数据库中删除并返回键值为 key 的项目。如果不在,则返回 default。

示例一

# 创建及写入示例
import shelve

d = shelve.open('data.db')
d['key1'] = 'value1'
d['key2'] = 'value2'
d.close()

在该示例中,我们使用了 shelve.open() 方法打开了一个键值存储器。我们向这个键值存储器中添加了两个项目,使用 close() 方法关闭了数据库。

示例二

# 读取及查找示例
import shelve

d = shelve.open('data.db')
value1 = d['key1']
print(value1)

value_none = d.get('key_none', None)
print(value_none)

keys = list(d.keys())
values = list(d.values())
items = list(d.items())
print(keys, values, items)

d.update({"key1": "new_value1", "key3": "value3"})
print(d['key1'], d['key3'])

d.pop('key2')
print(list(d.keys()), list(d.values()), list(d.items()))

d.close()

在该示例中,我们先是打开了一个数据库,读取了 'key1' 对应的值并打印出来,我们使用了 get() 方法获取了不存在的key的值,并指定了默认值,然后通过 keys() 方法获取了所有键,通过 values() 方法获取了所有值,通过 items() 方法获取了所有键和值,然后更新了 key1 的值和增加了新的项目 key3。删除了 key2,并分别输出所有的健、值和键值对,最后调用了 close() 方法释放资源。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3 shelve模块的详解 - Python技术站

(0)
上一篇 2023年6月2日
下一篇 2023年6月2日

相关文章

  • 你喜欢篮球吗?Python实现篮球游戏

    你喜欢篮球吗?Python实现篮球游戏攻略 概述 本篮球游戏使用Python实现,旨在帮助初学者掌握Python编程语言,了解游戏开发的基本过程和原理。 环境准备 为了运行这个游戏,你需要安装Python 3和Pygame游戏引擎。 安装Python 3 请访问Python官网下载最新版的Python 3(https://www.python.org/dow…

    python 2023年5月18日
    00
  • Python 过滤访问细节

    Python 过滤访问细节指的是在网络请求中,可以使用Python对请求进行过滤或修改,以便更好地控制和管理网络请求。本攻略将介绍Python 过滤访问细节的使用方法。 环境准备 在使用Python 过滤访问细节之前,你需要安装Python的requests库。打开命令行终端,输入以下代码进行安装: pip install requests 发送带有head…

    python-answer 2023年3月25日
    00
  • 解决Python获取字典dict中不存在的值时出错问题

    当我们在Python中尝试获取一个字典中的不存在的值时,程序会报错,这是因为该键没有在字典中定义。以下是如何解决此类问题的完整攻略: 使用get方法获取值 使用get方法可以避免因字典中不存在的键而导致的错误。该方法接收一个键值参数,如果字典中存在该键,它将返回其相应的值,否则返回指定的默认值。例如: my_dict = {‘name’: ‘Tom’, ‘a…

    python 2023年5月13日
    00
  • plt.figure()参数使用详解及运行演示

    下面我来详细讲解一下“plt.figure()参数使用详解及运行演示”的攻略。 1. matplotlib.pyplot.figure() matplotlib.pyplot.figure()是用于创建一个具有指定属性的新Figure对象的函数。Figure对象用于承载并展示所有的图形元素。在创建Figure实例后,我们需要在其上添加一个或多个Axes对象才…

    python 2023年5月18日
    00
  • Python中TypeError:unhashable type:’dict’错误的解决办法

    当我们在使用Python进行开发时,有时候会遇到 “TypeError:unhashabletype:’dict’” 错误,这个错误一般是由于我们将一个字典作为某些操作函数的输入参数,并将这个字典作为空间的 key 进行 hash 计算导致的。下面我将为大家介绍解决这个错误的方法。 1. 错误原因 在 Python 中,一般而言我们需要将某些函数的输入数据进…

    python 2023年5月13日
    00
  • Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】

    Python基础学习之基本数据结构详解 Python数据类型 在Python中,一共有几种基本的数据类型: 数字(Number):整数,浮点数 字符串(String):用于表达文本信息 列表(List):用于存储一系列有序的元素 元组(Tuple):与列表类似,但是元素不可修改 集合(Set):用于存储一系列无序的元素(不能含有重复元素) 字典(Dictio…

    python 2023年5月13日
    00
  • python excel和yaml文件的读取封装

    当我们在使用Python处理数据的时候,经常会遇到读取Excel表格、YAML格式文件的需求。为了提高代码重用性和可维护性,我们可以对这些操作进行封装,使得代码更加简洁易懂。 在Python中,我们可以使用openpyxl库来读取Excel文件,PyYAML库来读取YAML文件,下面我们通过示例来具体介绍如何实现这些功能。 1. Python处理Excel文…

    python 2023年5月13日
    00
  • Python Beautiful Soup模块使用教程详解

    Python Beautiful Soup模块使用教程详解 Beautiful Soup是一个Python库,用于解析HTML和XML文档,并提供了一些方便的方法来获取和操作文档中的元素。它可以帮助我们快速地从网页中提取所需的信息,是Python爬虫中常用的工具之一。 安装Beautiful Soup 在使用Beautiful Soup之前,需要确保已安装该…

    python 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部