11.10. dbhash — BSD 数据库库的 DBM 风格接口 — Python 文档

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

11.10. 数据库哈希 — BSD 数据库库的 DBM 风格接口

自 2.6 版起已弃用:dbhash 模块已在 Python 3 中删除。


dbhash 模块提供了使用 BSD db 库打开数据库的功能。 该模块反映了其他 Python 数据库模块的接口,这些模块提供对 DBM 样式数据库的访问。 bsddb模块需要使用dbhash

这个模块提供了一个异常和一个函数:

exception dbhash.error
KeyError 以外的数据库错误引发异常。 它是 bsddb.error 的同义词。
dbhash.open(path[, flag[, mode]])

打开一个 db 数据库并返回数据库对象。 path 参数是数据库文件的名称。

flag 参数可以是:

价值

意义

'r'

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

'w'

打开现有数据库进行读写

'c'

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

'n'

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

对于 BSD db 库支持锁定的平台,可以附加一个 'l' 以指示应该使用锁定。

可选的 mode 参数用于指示必须创建新数据库时应设置的 Unix 权限位; 这将被进程的当前 umask 值屏蔽。

也可以看看

模块 anydbm
dbm 样式数据库的通用接口。
模块 bsddb
BSD db 库的底层接口。
模块 whichdb
用于确定现有数据库类型的实用程序模块。


11.10.1。 数据库对象

open() 返回的数据库对象提供了所有 DBM 风格的数据库和映射对象通用的方法。 除了标准方法之外,还可以使用以下方法。

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()
此方法强制将任何未写入的数据写入磁盘。