首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

anydbm

注释

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

anydbm是DBM数据库变体的通用接口 - dbhash(需要bsddbgdbm,或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()方法。键和值必须始终是字符串。

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

代码语言:javascript
复制
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数据库。

扫码关注腾讯云开发者

领取腾讯云代金券