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技术站