shelve 用来持久化任意的Python对象实例代码

Shelve是Python内置的一个持久化模块,可用于将Python对象实例代码转化为字节流(binary stream)并将其写入文件,以便后续可以重新加载到内存中。

Shelve的使用分为以下几个步骤:

  1. 打开shelve文件:使用shelve.open函数打开要写入的shelve文件,可以指定模式为"r"(只读)、"w"(写入)、"c"(写入前检查),默认为"c"。
import shelve

with shelve.open("my_shelve") as my_shelve:
    # your code here
  1. 将Python对象实例代码写入shelve:使用shelve的__setitem__方法将Python对象实例代码存入shelve。键为任意字符串,值为要存储的Python对象实例代码。
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

person1 = Person("Tom", 18)
person2 = Person("Lucy", 20)

with shelve.open("my_shelve") as my_shelve:
    my_shelve["person1"] = person1
    my_shelve["person2"] = person2
  1. 从shelve加载Python对象实例代码:使用shelve的__getitem__方法从shelve文件中加载Python对象实例代码。
with shelve.open("my_shelve") as my_shelve:
    print(my_shelve["person1"].name)  # Tom
    print(my_shelve["person2"].age)  # 20
  1. 关闭shelve文件:使用shelve的close方法关闭shelve文件。
with shelve.open("my_shelve") as my_shelve:
    # your code here

my_shelve.close()

示例1:存储列表到shelve文件

import shelve

list_a = [1, 2, 3]

with shelve.open("my_shelve") as my_shelve:
    my_shelve["list_a"] = list_a

with shelve.open("my_shelve") as my_shelve:
    print(my_shelve["list_a"])  # [1, 2, 3]

示例2:存储字典到shelve文件

import shelve

dict_a = {"name": "Alice", "age": 25}

with shelve.open("my_shelve") as my_shelve:
    my_shelve["dict_a"] = dict_a

with shelve.open("my_shelve") as my_shelve:
    print(my_shelve["dict_a"]["name"])  # Alice

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:shelve 用来持久化任意的Python对象实例代码 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • Python的randrange()方法使用教程

    Python的randrange()方法是Python标准库random模块所提供的函数之一。randrange()方法可以用来生成一个指定范围内的随机整数,其用法非常简单。以下是randrange()方法的使用教程: 1. randrange()方法的基本语法 使用randrange()方法的基本语法如下: import random random.ran…

    python 2023年6月3日
    00
  • PyCharm安装第三方库如Requests的图文教程

    请耐心听我讲解: PyCharm安装第三方库的图文教程 PyCharm是一款功能强大的Python开发工具,但在开发过程中,我们可能需要使用一些第三方的库,比如Requests、NumPy等等。这个时候我们就需要在PyCharm中安装这些库,才能在代码中正确地引用它们。 下面是安装Requests库的图文教程,您可以按照这个步骤安装其他库: 步骤一:打开Py…

    python 2023年5月14日
    00
  • Python调用钉钉自定义机器人的实现

    下面我就为大家详细讲解如何使用Python调用钉钉自定义机器人,并提供两条示例说明。 1. 准备工作 钉钉账号,拥有创建自定义机器人的权限; Python的requests库,可使用pip进行安装; 2. 获取自定义机器人Webhook地址 在钉钉中创建一个自定义机器人,然后获取其Webhook地址。 具体步骤: 进入钉钉工作台,点击自定义机器人,进入自定义…

    python 2023年5月23日
    00
  • pip安装python库的方法总结

    下面是“pip安装python库的方法总结”的完整攻略。 1. pip是什么 pip是Python的一个包管理工具,可通过pip快速安装、升级、删除Python库(包)等操作。 2. 如何安装pip 在Python2.7.9及之后版本中,pip已经内置,无需额外安装。如果是旧版Python,需要手动安装。 在Linux或macOS中安装pip 在终端中输入以…

    python 2023年5月14日
    00
  • Java 中 Map 集合的三种遍历方式小结

    下面我将为您详细讲解“Java 中 Map 集合的三种遍历方式小结”。 1. Map 集合的概述 Map 是一种键值对映射的集合接口,它允许使用键来查找值。在 Java 中,常用的 Map 实现类有 HashMap、TreeMap、LinkedHashMap,它们都实现了 Map 接口。 2. Map 集合的三种遍历方式 2.1 基于遍历键的集合方式 在遍历…

    python 2023年5月14日
    00
  • pygame画点线方法详解

    Pygame画点线方法详解 Pygame是一种使用Python编程语言的多媒体库,它使我们可以轻松创建2D游戏和图形应用程序。在这篇攻略中,我们将详细讲解pygame库中的画点线方法。 Pygame画点点的方法 使用Pygame画点的方法非常简单,我们可以使用pygame.draw.circle()方法来绘制一个圆形,并指定它的位置和半径。 import p…

    python 2023年6月3日
    00
  • 如何在 Redis 中实现限流?

    以下是详细讲解如何在 Redis 中实现限流的完整使用攻略。 Redis 限流简介 Redis 限流是一种常用的限制访问速率的方法,可以用于保系统免受过多的请求。Redis 限流的特点如下: Redis 限流是基于令牌桶算法的,可以控制请求速率。 Redis 限流是可扩展的,可以动态调整限流略。 Redis 限流支持多种限流方式,包括定窗口限流、滑动窗口限流…

    python 2023年5月12日
    00
  • python 中collections的 deque使用详解

    Python 中 collections 的 deque 使用详解 deque 是 Python 内置的一个双向队列数据类型,具有高效地添加和弹出元素的特性,功能类似于列表,但操作更加高效。 1. 创建 deque 对象 deque 对象可以通过 collections 模块中的 deque 函数来创建,不同于列表,它接收一个 maxlen 参数,用于限制 …

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