11.8. dbm — 简单的“数据库”接口 — Python 文档

来自菜鸟教程
Python/docs/2.7/library/dbm
跳转至:导航、​搜索

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

笔记

dbm 模块已在 Python 3 中重命名为 dbm.ndbm2to3 工具将在将您的源代码转换为 Python 3 时自动调整导入。


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

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

该模块定义了以下内容:

exception dbm.error
引发特定于 dbm 的错误,例如 I/O 错误。 KeyError 针对一般映射错误(例如指定不正确的密钥)而引发。
dbm.library
使用的 ndbm 实现库的名称。
dbm.open(filename[, flag[, mode]])

打开一个 dbm 数据库并返回一个 dbm 对象。 filename 参数是数据库文件的名称(没有 .dir.pag 扩展名;注意接口的 BSD DB 实现会附加扩展名 .db 并且只创建一个文件)。

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

价值

意义

'r'

以只读方式打开现有数据库(默认)

'w'

打开现有数据库进行读写

'c'

打开数据库进行读写,如果不存在则创建

'n'

总是创建一个新的、空的数据库,以读写方式打开

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

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

dbm.close()

关闭 dbm 数据库。

也可以看看

模块 anydbm
dbm 样式数据库的通用接口。
模块 gdbm
与 GNU GDBM 库类似的接口。
模块 whichdb
用于确定现有数据库类型的实用程序模块。