创建一个新的架子
使用搁置的最简单方法是通过 DbfilenameShelf 类。它使用 anydbm 来存储数据。你可以直接使用该类,或者只需调用 shelve.open()
:
import shelve
s = shelve.open('test_shelf.db')
try:
s['key1'] = { 'int': 10, 'float':9.5, 'string':'Sample data' }
finally:
s.close()
要再次访问数据,请打开书架并像字典一样使用它:
import shelve
s = shelve.open('test_shelf.db')
try:
existing = s['key1']
finally:
s.close()
print existing
如果你运行两个示例脚本,你应该看到:
$ python shelve_create.py
$ python shelve_existing.py
{'int': 10, 'float': 9.5, 'string': 'Sample data'}
该 DBM 模块不支持多个应用程序同时写入同一个数据库。如果你知道你的客户端不会修改架子,你可以告诉 shelve 以只读方式打开数据库。
import shelve
s = shelve.open('test_shelf.db', flag='r')
try:
existing = s['key1']
finally:
s.close()
print existing
如果程序在以只读方式打开时尝试修改数据库,则会生成访问错误异常。异常类型取决于创建数据库时 anydbm 选择的数据库模块。