11.8. dbm-简单的“数据库”界面

Note

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

dbm模块提供到 Unix“(n)dbm”库的接口。 Dbm 对象的行为类似于 Map(字典),只是键和值始终是字符串。打印 dbm 对象不会打印键和值,并且不支持items()values()方法。

该模块可以与“经典” ndbm 接口,BSD DB 兼容性接口或 GNU GDBM 兼容性接口一起使用。在 Unix 上, configure 脚本将try找到适当的头文件以简化此模块的构建。

该模块定义以下内容:

  • exception dbm. error

    • 在特定于 dbm 的错误(例如 I/O 错误)上引发。对于一般的 Map 错误(例如指定不正确的键),将引发KeyError
  • dbm. library

    • 所使用的ndbm实现库的名称。
  • dbm. open(* filename * [,* flag * [,* mode *]])

    • 打开一个 dbm 数据库并返回一个 dbm 对象。 * filename *参数是数据库文件的名称(不带.dir.pagextensions;请注意,接口的 BSD DB 实现将附加 extensions.db并仅创建一个文件)。

可选的* flag *参数必须是以下值之一:

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

可选的* mode *参数是文件的 Unix 模式,仅在必须创建数据库时使用。它的默认值为八进制的0666(并且会被当前的 umask 修改)。

除了类似于字典的方法外,dbm对象还提供以下方法:

  • dbm. close ( )
    • 关闭dbm数据库。

See also

  • Module anydbm

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

  • Module gdbm

  • 与 GNU GDBM 库相似的接口。

  • Module whichdb

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