gdbm

gdbm — GNU’s reinterpretation of dbm

注释

gdbm模块已被重命名为dbm.gnuPython 3. 当将源代码转换为Python 3时,2to3工具将自动适应导入。

这个模块与模块非常相似dbm,但是gdbm用来提供一些附加功能。请注意,由gdbm和创建的文件格式dbm不兼容。

gdbm模块为GNU DBM库提供了一个接口。gdbm对象的行为就像映射(字典),除了键和值总​​是字符串。打印gdbm对象不会打印键和值,并且不支持items()values()方法。

该模块定义了以下常量和功能:

exception gdbm.error

引发gdbm特定的错误,例如I / O错误。KeyError引发一般映射错误,如指定不正确的键。

gdbm.open(filename[, flag[, mode]])

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

可选的标志参数可以是:

含义
'R'打开仅用于读取的现有数据库(默认)
'W'打开现有的数据库进行读写
'C'打开数据库进行读写,如果不存在则创建它
'N'总是创建一个新的空的数据库,打开阅读和写作

以下附加字符可以附加到该标志以控制数据库的打开方式:

含义
'F'以快速模式打开数据库。写入数据库将不会同步。
'S'同步模式。这将导致数据库的更改立即写入文件。
“在”不要锁定数据库。

并非所有标志对于所有版本都有效gdbm。模块常量open_flags是一串支持的标志字符。error如果指定了无效标志,则会引发异常。

可选模式参数是文件的Unix模式,仅在需要创建数据库时使用。它默认为八进制0666

除了类似字典的方法外,gdbm对象还有以下方法:

gdbm.firstkey()

使用此方法和nextkey()方法可以遍历数据库中的每个键。遍历按gdbm内部散列值排序,不会按键值排序。此方法返回开始键。

gdbm.nextkey(key)

返回遍历中关键字的键。以下代码打印数据库中的每个键db,而不必在内存中创建一个包含它们的列表:

k = db.firstkey() while k != None: print k k = db.nextkey(k)

gdbm.reorganize()

如果您执行了大量删除操作并希望缩小gdbm文件使用的空间,则此例程将重新组织数据库。gdbm除使用此重组外,不会缩短数据库文件的长度; 否则,删除的文件空间将被保留并在新(键值)对添加时重新使用。

gdbm.sync()

当数据库以快速模式打开时,此方法强制任何未写入的数据写入磁盘。

gdbm.close()

关闭gdbm数据库。