在线文档教程

anydbm

anydbm — Generic access to DBM-style databases

注释

anydbm模块已被重命名为dbmPython 3. 当将源代码转换为Python 3时,2to3工具将自动适应导入。

anydbm是DBM数据库变体的通用接口 - dbhash(需要bsddbgdbm,或dbm。如果没有安装这些模块,dumbdbm则将使用模块中缓慢而简单的实现。

anydbm.open(filename[, flag[, mode]])

打开数据库文件的文件并返回相应的对象。

如果数据库文件已存在,whichdb则使用该模块确定其类型并使用适当的模块; 如果它不存在,则使用上面列出的可导入的第一个模块。

可选的标志参数必须是以下值之一:

含义
'R'打开仅用于读取的现有数据库(默认)
'W'打开现有的数据库进行读写
'C'打开数据库进行读写,如果不存在则创建它
'N'总是创建一个新的空的数据库,打开阅读和写作

如果未指定,则默认值为'r'

可选模式参数是文件的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数据库。