11.6. anydbm — 对 DBM 样式数据库的通用访问 — Python 文档
来自菜鸟教程
Python/docs/2.7/library/anydbm
11.6. 任何数据库 — 对 DBM 样式数据库的通用访问
anydbm 是 DBM 数据库变体的通用接口 - dbhash(需要 bsddb)、gdbm 或 dbm[ X141X]。 如果没有安装这些模块,将使用模块 dumbdbm 中缓慢但简单的实现。
- anydbm.open(filename[, flag[, mode]])
打开数据库文件filename,返回一个对应的对象。
如果数据库文件已经存在,则使用whichdb模块来判断其类型并使用相应的模块; 如果它不存在,则使用上面列出的第一个可以导入的模块。
可选的 flag 参数必须是以下值之一:
价值
意义
'r'
以只读方式打开现有数据库(默认)
'w'
打开现有数据库进行读写
'c'
打开数据库进行读写,如果不存在则创建
'n'
总是创建一个新的、空的数据库,以读写方式打开
如果未指定,则默认值为
'r'
。可选的 mode 参数是文件的 Unix 模式,仅在必须创建数据库时使用。 它默认为八进制
0666
(并将被流行的 umask 修改)。
- exception anydbm.error
- 包含每个受支持模块可以引发的异常的元组,唯一的异常也命名为 anydbm.error 作为第一项——后者在 anydbm.error 时使用被提出。
open() 返回的对象支持大部分与字典相同的功能; 可以存储、检索和删除键及其对应的值,并且可以使用 has_key()
和 keys()
方法。 键和值必须始终是字符串。
下面的例子记录了一些主机名和一个对应的标题,然后打印出数据库的内容:
import anydbm
# Open database, creating it if necessary.
db = anydbm.open('cache', 'c')
# Record some values
db['www.python.org'] = 'Python Website'
db['www.cnn.com'] = 'Cable News Network'
# Loop through contents. Other dictionary methods
# such as .keys(), .values() also work.
for k, v in db.iteritems():
print k, '\t', v
# Storing a non-string key or value will raise an exception (most
# likely a TypeError).
db['www.yahoo.com'] = 4
# Close when done.
db.close()
除了类似字典的方法外,anydbm
对象还提供以下方法:
- anydbm.close()
- 关闭
anydbm
数据库。