做自由与创造的先行者

数据持久性 | Data Persistence anydbm

Python开发手册

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

anydbm是DBM数据库变体的通用接口 - dbhash(需要bsddb)gdbm,或dbm。如果没有安装这些模块,dumbdbm则将使用模块中缓慢而简单的实现。

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

打开数据库文件的文件名并返回相应的对象。

如果数据库文件已存在,whichdb则使用该模块确定其类型并使用适当的模块; 如果它不存在,则使用上面列出的可导入的第一个模块。

可选的标志参数必须是以下值之一:

含义

'R'

打开仅用于读取的现有数据库(默认)

'W'

打开现有的数据库进行读写

'C'

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

'N'

总是创建一个新的空的数据库,打开阅读和写作

如果未指定,则默认值为'r'。

可选模式参数是文件的Unix模式,仅在需要创建数据库时使用。它默认为八进制0666(并且会被主要的umask修改)。

exception anydbm.error

包含可由每个受支持模块引发的异常的元组,其中包含也anydbm.error称为第一项的唯一异常- 后者在anydbm.error引发时使用。

返回的对象open()支持与字典大部分相同的功能; 可以存储,检索和删除键和它们的对应值,并且可以使用has_key()和keys()方法。键和值必须始终是字符串。

以下示例记录了一些主机名和相应的标题,然后打印出数据库的内容:

import anydbm

# Open database, creating it if necessary.

db = anydbm.open('cache', 'c')

# Record some values

db['www.python.org'] = 'Python Website'

db['www.cnn.com'] = 'Cable News Network'

# Loop through contents. Other dictionary methods

# such as .keys(), .values() also work.

for k, v in db.iteritems():

print k, '\t', v

# Storing a non-string key or value will raise an exception (most

# likely a TypeError).

db['www.yahoo.com'] = 4

# Close when done.

db.close()

复制

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

纠错

anydbm.close()

关闭anydbm数据库。

网站建设开发|APP设计开发|小程序建设开发
下一篇:数据持久性 | Data Persistence bsddb
上一篇:数据压缩 | Data Compression zipfile