第七章:数据持久存储与交换-dbm:UNIX键值数据库-数据库类型

本文介绍了Python中的dbm数据库模块,包括dbm.gnu、dbm.ndbm和dbm.dumb等不同实现方式。dbm用于创建键值存储数据库,支持多种操作系统,并提供了不同的特性如快速模式和同步模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

7.3 dbm:UNIX键值数据库
dbm是面向DBM数据库的一个前端,DBM数据库使用简单的字符串值作为键来访问包含字符串的记录。dbm使用whichdb()标识数据库,然后用适当的模块打开这些数据库。dbm还被用作shelve的一个后端,shelve使用pickle将对象存储在一个DBM数据库中。

7.3.1 数据库类型
Python提供了很多模块来访问DBM数据库。具体选择的默认实现取决于当前系统上可用的库以及编译Python时使用的选项。特定实现有单独的接口,这使得Python程序可以与用其他语言编写的程序(这些语言可能不会在可用格式之间自动切换)交换数据,并且可以写适用于多个平台的可移植的数据文件。

7.3.1.1 dbm.gnu
dbm.gnu是GNU项目dbm库版本的一个接口。它的工作方式与这里介绍的其他DBM实现相同,只是open()支持的标志有些不同。除了标准’r’,‘w’,'c’和’n’标志,dbm.gnu.open()还支持以下标志:
'f’以快速(fast)模式打开数据库。在快速模式下,对数据库的写并不同步。
's’以同步(synchronized)模式打开数据库。对数据库做出修改时,这些改变要直接写至文件,而不是延迟到数据库关闭或显式同步时才写至文件。
'u’以不加锁(unlocked)的状态打开数据库。

7.3.1.2 dbm.ndbm
dbm.ndbm模块为dbm格式的UNIX ndbm实现提供了一个接口,依赖于编译时这个模块如何配置。模块属性library指示编译扩展模块时configure能找到的库名。

7.3.1.3 dbm.dumb
dbm.dumb模块是没有其他实现可用时DBM API的一个可移植的后备实现。使用dbm.dumb模块不需要依赖任何外部库,但它的速度比大多数其他实现都慢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值