📜  在Python中检索和更新Shelve 中包含的数据(1)

📅  最后修改于: 2023-12-03 14:51:21.277000             🧑  作者: Mango

在Python中检索和更新Shelve中包含的数据

Shelve是Python标准库中一个DBM(键-值存储)模块的扩展,它允许Python开发人员将对象保存在一个磁盘上的键值数据库中。Shelve模块通过使用pickle模块对对象进行序列化和反序列化,从而实现对象的存储和检索。

该文章介绍如何在Python中检索和更新Shelve中的数据。主要内容包括以下几个方面:

  • 打开和创建Shelve文件
  • 向Shelve中添加数据
  • 检索Shelve中的数据
  • 更新Shelve中的数据
  • 删除Shelve中的数据
打开和创建Shelve文件

使用Shelve前,必须安装Python标准库中的Shelve模块。在python3.8版本中,Shelve已经默认安装,如果你的Python版本低于python3.8版本,你可以使用以下代码来安装Shelve模块:

pip install shelve

在创建和打开Shelve文件之前,我们需要导入shelve模块:

import shelve

使用shelve.open()函数打开或创建Shelve文件。如果指定的文件不存在,函数会自动创建一个新的文件。

# 打开一个已经存在的文件
db = shelve.open('mydb')

# 创建一个新文件
db = shelve.open('newdb')
向Shelve中添加数据

Shelve是使用键值对(key-value pair)存储数据的,我们可以使用键来访问和操作存储的数据。可以把任何Python对象保存到Shelve文件中,包括字符串、列表、字典、元组、自定义类等。对象必须是可序列化的,即不能包含Python中不支持的类型,例如函数,文件句柄等。

向Shelve中添加数据,只需要将键值对传递给Shelve对象即可:

db['name'] = 'Alice'
db['age'] = 18
db['courses'] = ['Python', 'Java', 'C++']
检索Shelve中的数据

可以使用键来访问Shelve文件中存储的数据,类似于Python中的字典。通过键来检索数据:

name = db['name']
age = db['age']
courses = db['courses']
更新Shelve中的数据

可以像字典一样更新Shelve中的数据。将一个键对应的值重新赋值即可:

# 更新‘name’键对应的值
db['name'] = 'Bob'

# 更新‘courses’键对应的值
db['courses'] = ['Python', 'Java', 'C#', 'Ruby']
删除Shelve中的数据

从Shelve中删除数据,可以使用del语句。例如,下面的代码将删除名为‘age’的键:

del db['age']
关闭Shelve文件

完成对Shelve文件的操作之后,要记得关闭它。这可以通过调用shelve对象的close()方法来实现。

db.close()

通过shelve模块,我们可以使用Python对象来包装和检索数据,我们不需要担心它们的格式或类型。Shelve模块可以让我们像字典一样简单而方便地存储Python对象。