Python 数据持久化 - dbm 包



dbm 包提供了一个类似字典的接口,用于 DBM 风格的数据库。DBM 代表数据库管理器 (DataBase Manager)。它被 UNIX(以及类 UNIX)操作系统使用。dbbm 库是由 Ken Thompson 编写的简单数据库引擎。这些数据库使用二进制编码的字符串对象作为键和值。

数据库通过使用单个键(主键)在固定大小的桶中存储数据,并使用哈希技术来实现通过键快速检索数据。

dbm 包包含以下模块:

  • dbm.gnu 模块是 GNU 项目实现的 DBM 库版本的接口。

  • dbm.ndbm 模块提供与 UNIX ndbm 实现的接口。

  • dbm.dumb 用作后备选项,如果找不到其他 dbm 实现,则使用它。它不需要外部依赖项,但速度比其他模块慢。

>>> dbm.whichdb('mydbm.db')
'dbm.dumb'
>>> import dbm
>>> db=dbm.open('mydbm.db','n')
>>> db['name']=Raj Deshmane'
>>> db['address']='Kirtinagar Pune'
>>> db['PIN']='431101'
>>> db.close()

open() 函数允许使用这些标志:

序号 值和含义
1

'r'

以只读方式打开现有数据库(默认)

2

'w'

以读写方式打开现有数据库

3

'c'

以读写方式打开数据库,如果数据库不存在则创建它

4

'n'

始终创建一个新的空数据库,以读写方式打开

dbm 对象是一个类似字典的对象,就像 shelf 对象一样。因此,可以执行所有字典操作。dbm 对象可以调用 get()、pop()、append() 和 update() 方法。以下代码使用 'r' 标志打开 'mydbm.db' 并迭代键值对集合。

>>> db=dbm.open('mydbm.db','r')
>>> for k,v in db.items():
   print (k,v)
b'name' : b'Raj Deshmane'
b'address' : b'Kirtinagar Pune'
b'PIN' : b'431101'
广告