11.8. dbm-简单的“数据库”界面
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
或.pag
extensions;请注意,接口的 BSD DB 实现将附加 extensions.db
并仅创建一个文件)。
- 打开一个 dbm 数据库并返回一个 dbm 对象。 * filename *参数是数据库文件的名称(不带
可选的* flag *参数必须是以下值之一:
Value | Meaning |
---|---|
'r' | 打开现有数据库以只读(默认) |
'w' | 打开现有数据库进行读写 |
'c' | 打开数据库进行读写,如果不存在则创建数据库 |
'n' | 始终创建一个新的空数据库,以供读取和写入 |
可选的* mode *参数是文件的 Unix 模式,仅在必须创建数据库时使用。它的默认值为八进制的0666
(并且会被当前的 umask 修改)。
除了类似于字典的方法外,dbm
对象还提供以下方法:
dbm.
close
( )- 关闭
dbm
数据库。
- 关闭