dbm是DBM数据库变体的通用接口 – dbm.gnudbm.ndbm。如果没有安装这些模块,dbm.dumb将使用模块中缓慢但简单的实现。Oracle Berkeley DB 有第三方接口

异常dbm.error
包含可由每个受支持模块引发的异常的元组,其中唯一的异常也dbm.error称为第一个项 – 后者在dbm.error引发时使用。
dbm.whichdb文件名
这个函数尝试猜测哪些可用的几个简单的数据库模块- dbm.gnudbm.ndbmdbm.dumb-应该用来打开一个指定的文件。

返回以下值之一:None如果由于文件不可读或不存在而无法打开文件; ''如果无法猜到文件的格式,则为空字符串(); 或包含所需模块名称的字符串,例如'dbm.ndbm''dbm.gnu'

dbm.openfileflag =’r’mode = 0o666 
打开数据库文件文件并返回相应的对象。

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

可选的flag参数可以是:

含义
'r' 打开现有数据库以进行只读(默认)
'w' 打开现有数据库进行读写
'c' 打开数据库进行读写,如果不存在则创建它
'n' 始终创建一个新的空数据库,打开以进行读写

可选模式参数是文件的Unix模式,仅在必须创建数据库时使用。它默认为八进制0o666(并将由流行的umask修改)。

返回的对象open()支持与字典相同的基本功能; 键和它们的对应的值可以被存储,检索和删除,并且in操作者和keys()方法是可用的,以及get()setdefault()

改变在3.2版本:get()setdefault()现在在所有数据库模块中可用。

键和值始终存储为字节。这意味着在使用字符串时,它们会在存储之前隐式转换为默认编码。

这些对象还支持在with语句中使用,语句在完成后将自动关闭它们。

在3.4版中更改:为返回的对象添加了对上下文管理协议的本机支持open()

以下示例记录了一些主机名和相应的标题,然后打印出数据库的内容:

import dbm

# Open database, creating it if necessary.
with dbm.open('cache', 'c') as db:

    # Record some values
    db[b'hello'] = b'there'
    db['www.python.org'] = 'Python Website'
    db['www.cnn.com'] = 'Cable News Network'

    # Note that the keys are considered bytes now.
    assert db[b'www.python.org'] == b'Python Website'
    # Notice how the value is now in bytes.
    assert db['www.cnn.com'] == b'Cable News Network'

    # Often-used methods of the dict interface work too.
    print(db.get('python.org', b'not present'))

    # Storing a non-string key or value will raise an exception (most
    # likely a TypeError).
    db['www.yahoo.com'] = 4

# db is automatically closed when leaving the with statement.

 

也可以看看

模 shelve
存储非字符串数据的持久性模块。

各个子模块将在以下部分中介绍。

dbm.gnu– GNU对dbm的重新解释

源代码: Lib / dbm / gnu.py


该模块与模块非常相似dbm,但使用GNU库 gdbm来提供一些额外的功能。请注意,由dbm.gnu和创建的文件格式dbm.ndbm不兼容。

dbm.gnu模块提供GNU DBM库的接口。 dbm.gnu.gdbm对象的行为类似于映射(字典),除了键和值总​​是在存储之前转换为字节。打印gdbm 对象不会打印键和值,并且不支持items()values()方法。

异常dbm.gnu.error
引发dbm.gnu特定于错误的错误,例如I / O错误。KeyError引发了一般映射错误,例如指定了错误的键。
dbm.gnu.openfilename [flag [mode 
打开gdbm数据库并返回一个gdbm对象。该文件名 参数是数据库文件的名称。

可选的flag参数可以是:

含义
'r' 打开现有数据库以进行只读(默认)
'w' 打开现有数据库进行读写
'c' 打开数据库进行读写,如果不存在则创建它
'n' 始终创建一个新的空数据库,打开以进行读写

可以在标志后附加以下附加字符以控制数据库的打开方式:

含义
'f' 以快速模式打开数据库。写入数据库将不会同步。
's' 同步模式。这将导致数据库的更改立即写入文件。
'u' 不要锁定数据库。

并非所有标志都适用于所有版本的gdbm。模块常量 open_flags是一组受支持的标志字符。error如果指定了无效标志,则引发异常 。

可选模式参数是文件的Unix模式,仅在必须创建数据库时使用。它默认为八进制0o666

除了类字典方法之外,gdbm对象还有以下方法:

gdbm.firstkey
使用此方法和nextkey()方法可以遍历数据库中的每个键 。遍历按