11.9. gdbm — GNU 对 dbm 的重新解释

Note

gdbm模块在 Python 3 中已重命名为dbm.gnu2to3工具在将源转换为 Python 3 时将自动适应导入。

该模块与dbm模块非常相似,但是使用gdbm来提供一些附加Function。请注意,gdbmdbm创建的文件格式不兼容。

gdbm模块提供了 GNU DBM 库的接口。 gdbm对象的行为类似于 Map(字典),不同之处在于键和值始终是字符串。打印gdbm对象不会打印键和值,并且不支持items()values()方法。

该模块定义以下常量和函数:

可选的* flag *参数可以是:

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

可以在标志后面附加以下其他字符,以控制如何打开数据库:

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

并非所有标志都对gdbm的所有版本均有效。模块常数open_flags是支持的标志字符的字符串。如果指定了无效标志,则会引发异常error

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

除了类似于字典的方法外,gdbm对象还具有以下方法:

k = db.firstkey()
while k != None:
    print k
    k = db.nextkey(k)

See also

  • Module anydbm

  • dbm样式数据库的通用接口。

  • Module whichdb

  • Util 模块,用于确定现有数据库的类型。

首页