11.12. dumbdbm-便携式 DBM 实施

Note

dumbdbm模块在 Python 3 中已重命名为dbm.dumb2to3工具在将源转换为 Python 3 时将自动适应导入。

Note

当没有更强大的模块可用时,dumbdbm模块将用作anydbm模块的最后手段。 dumbdbm模块不是为了提高速度而编写的,并且不像其他数据库模块那样频繁使用。

dumbdbm模块提供了一个类似于字典的持久性接口,该接口完全用 Python 编写。与其他模块(例如gdbmbsddb)不同,不需要任何外部库。与其他持久性 Map 一样,键和值必须始终为字符串。

该模块定义以下内容:

  • exception dumbdbm. error

    • 在特定于 dumbdbm 的错误(例如 I/O 错误)上引发。对于一般的 Map 错误(例如指定不正确的键),将引发KeyError
  • dumbdbm. open(* filename * [,* flag * [,* mode *]])

    • 打开一个 dumbdbm 数据库并返回一个 dumbdbm 对象。 * filename *参数是数据库文件的基本名称(没有任何特定的 extensions)。创建 dumbdbm 数据库时,将创建 extensions 为.dat.dir的文件。

可选的* flag *参数当前被忽略;数据库始终打开以进行更新,如果不存在则将创建数据库。

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

在 2.2 版中进行了更改:在早期版本中,* mode *参数被忽略。

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

  • dumbdbm. close ( )
    • 关闭dumbdm数据库。

See also

  • Module anydbm

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

  • Module dbm

  • 与 DBM/NDBM 库相似的接口。

  • Module gdbm

  • 与 GNU GDBM 库相似的接口。

  • Module shelve

  • 持久性模块,用于存储非字符串数据。

  • Module whichdb

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

11.12.1. Dumbdbm 对象

除了UserDict.DictMixin类提供的方法外,dumbdbm对象还提供以下方法。

  • dumbdbm. sync ( )
    • 同步磁盘上的目录和数据文件。该方法由Shelve个对象的sync()方法调用。