python3 shelve模块的详解

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多线程实现动态图绘制”的完整攻略: 1. 准备工作 首先需要安装 matplotlib 和 numpy 两个库。在终端输入以下命令: pip install matplotlib numpy 2. 实现动态图 使用matplotlib画图,可以使用pyplot模块,下面是一个例子。 import matplotlib.pyplot as …

    python 2023年5月19日
    00
  • 75条笑死人的知乎神回复,用60行代码就爬完了

    这里是完整的攻略: 步骤一:获取目标网页URL 首先,需要获取到要爬取的目标网页的URL。在本例中,即为知乎中“75条笑死人的知乎神回复”问答页的URL。这个URL可以通过在浏览器中打开相应页面并复制地址栏中的URL来获得。 步骤二:分析目标网页结构并确定爬取信息 在获取了目标网页的URL之后,需要分析目标网页的结构并确定需要爬取的信息。在本例中,需要爬取知…

    python 2023年5月18日
    00
  • python列表中remove()函数的使用方法详解

    以下是“Python列表中remove()函数的使用方法详解”的完整攻略。 1. remove()函数简介 在Python中,列表是一种常用的数据类型,用储一组有序的元素。列表中的元素可以是任何类型,包括数字、字符串、列表等。在列表中,我们可以使用remove()函数来删除指定的元素。 remove()函数用于从列表中删除指定的元素。它接受一个参数,即要删除…

    python 2023年5月13日
    00
  • Python机器学习之基础概述

    Python机器学习之基础概述 机器学习是一种人工智能技术,它可以让计算机从数据中学习并自动改进。Python是一种流行的编程语言,它在机器学习领域得到了广泛的应用。本文将介绍Python机器学习的基础概述,包括机器学习的类型、常用的Python机器学习库和两个示例说明。 机器学习的类型 机器学习可以分为三种类型:监督学习、无监督学习和强化学习。 监督学习 …

    python 2023年5月14日
    00
  • python3访问字典里的值实例方法

    下面是关于Python3访问字典里的值的完整攻略: 字典概述 字典是Python中的一种数据结构,采用键-值存储方式。每个键值对在字典中会对应一个唯一的键和一个值。可以通过键访问字典中的对应值。 在Python3中,一个简单的字典看起来像这样: dict = {"key1": "value1", "key2&…

    python 2023年5月13日
    00
  • Python async模块使用方法杂谈

    Python async模块使用方法杂谈是指使用Python的async模块进行异步编程的一些技巧和方法。本文将详讲解Python async模块使用方法杂谈的完整攻略,包括以下几个方面: 什么是async模块 async模块的使用方法 async模块的示例 什么是async模块 async模块是Python 3.5版本引入的异步编程模块,它提供了一种新的编…

    python 2023年5月15日
    00
  • python遍历数组的方法小结

    当我们使用Python进行编程时,经常需要对数组进行遍历,以便进行处理、计算和分析。本文将介绍Python中遍历数组的不同方法和示例。 方法一:使用for循环遍历数组 for循环是Python中遍历数组最常用的方法,它使用简单,易于理解和实现。我们可以使用for循环迭代数组,通过索引访问数组元素,并对每个元素进行相应的处理。 以下是使用for循环遍历数组的示…

    python 2023年6月5日
    00
  • python 显示数组全部元素的方法

    当我们想要显示 Python 中的数组全部元素时,通常使用如下两种方法: 方法一:使用 for 循环 arr = [1, 2, 3, 4, 5] for i in arr: print(i, end=" ") 上面的代码中,我们将 arr 列表中的全部元素一个一个取出,然后使用 print() 函数将它们打印出来。这里注意,我们使用 en…

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