11.10. dbhash — BSD 数据库库的 DBM 风格的接口
自 2.6 版起弃用:dbhash模块已在 Python 3 中删除。
dbhash模块提供了使用 BSD db
库打开数据库的Function。该模块镜像其他 Python 数据库模块的接口,这些模块提供对 DBM 样式数据库的访问。必须使用bsddb模块才能使用dbhash。
此模块提供异常和Function:
-
exception
dbhash.
error
- 因数据库错误而不是KeyError引发异常。它是
bsddb.error
的同义词。
- 因数据库错误而不是KeyError引发异常。它是
-
dbhash.
open
(* path * [,* flag * [,* mode *]])- 打开一个
db
数据库并返回数据库对象。 * path *参数是数据库文件的名称。
- 打开一个
- flag *参数可以是:
Value | Meaning |
---|---|
'r' | 打开现有数据库以只读(默认) |
'w' | 打开现有数据库进行读写 |
'c' | 打开数据库进行读写,如果不存在则创建数据库 |
'n' | 始终创建一个新的空数据库,以供读取和写入 |
对于 BSD db
库支持锁定的平台,可以附加'l'
来指示应使用锁定。
可选的* mode *参数用于指示必须创建新数据库时应设置的 Unix 权限位;这将被该进程的当前 umask 值屏蔽。
See also
11.10.1. 数据库对象
open()返回的数据库对象提供了所有 DBM 样式数据库和 Map 对象所共有的方法。除标准方法外,还可以使用以下方法。
-
dbhash.
first
( )- 使用此方法和
next()
方法可以遍历数据库中的每个键/值对。遍历由数据库内部哈希值排序,不会按键值排序。此方法返回开始键。
- 使用此方法和
-
dbhash.
last
( )- 返回数据库遍历中的最后一个键/值对。这可以用来开始逆序遍历。参见previous()。
-
dbhash.
next
( )- 返回数据库遍历中的键下一个键/值对。以下代码将打印数据库
db
中的每个键,而不必在包含它们的内存中创建列表:
- 返回数据库遍历中的键下一个键/值对。以下代码将打印数据库
print db.first()
for i in xrange(1, len(db)):
print db.next()
-
dbhash.
previous
( )- 返回数据库的前向遍历中的上一个键/值对。结合last(),它可以用于实现逆序遍历。
-
dbhash.
sync
( )- 此方法强制将所有未写入的数据写入磁盘。