📅  最后修改于: 2023-12-03 14:51:21.277000             🧑  作者: Mango
Shelve是Python标准库中一个DBM(键-值存储)模块的扩展,它允许Python开发人员将对象保存在一个磁盘上的键值数据库中。Shelve模块通过使用pickle模块对对象进行序列化和反序列化,从而实现对象的存储和检索。
该文章介绍如何在Python中检索和更新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是使用键值对(key-value pair)存储数据的,我们可以使用键来访问和操作存储的数据。可以把任何Python对象保存到Shelve文件中,包括字符串、列表、字典、元组、自定义类等。对象必须是可序列化的,即不能包含Python中不支持的类型,例如函数,文件句柄等。
向Shelve中添加数据,只需要将键值对传递给Shelve对象即可:
db['name'] = 'Alice'
db['age'] = 18
db['courses'] = ['Python', 'Java', 'C++']
可以使用键来访问Shelve文件中存储的数据,类似于Python中的字典。通过键来检索数据:
name = db['name']
age = db['age']
courses = db['courses']
可以像字典一样更新Shelve中的数据。将一个键对应的值重新赋值即可:
# 更新‘name’键对应的值
db['name'] = 'Bob'
# 更新‘courses’键对应的值
db['courses'] = ['Python', 'Java', 'C#', 'Ruby']
从Shelve中删除数据,可以使用del语句。例如,下面的代码将删除名为‘age’的键:
del db['age']
完成对Shelve文件的操作之后,要记得关闭它。这可以通过调用shelve对象的close()方法来实现。
db.close()
通过shelve模块,我们可以使用Python对象来包装和检索数据,我们不需要担心它们的格式或类型。Shelve模块可以让我们像字典一样简单而方便地存储Python对象。