anydbm
注释
该anydbm
模块已被重命名为dbm
Python 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
数据库。
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com