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的同义词。
  • dbhash. open(* path * [,* flag * [,* mode *]])

    • 打开一个db数据库并返回数据库对象。 * path *参数是数据库文件的名称。
  • flag *参数可以是:
ValueMeaning
'r'打开现有数据库以只读(默认)
'w'打开现有数据库进行读写
'c'打开数据库进行读写,如果不存在则创建数据库
'n'始终创建一个新的空数据库,以供读取和写入

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

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

See also

  • Module anydbm

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

  • Module bsddb

  • BSD db库的下层接口。

  • Module whichdb

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

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 ( )

    • 此方法强制将所有未写入的数据写入磁盘。