Python 数据持久性 dbm 包
dbm包提供了一个类似于DBM风格数据库的字典界面。 DBM是DataBase Manager的缩写。 这是由UNIX(和类似UNIX的)操作系统使用的。dbbm库是一个简单的数据库引擎,由Ken Thompson编写。这些数据库使用二进制编码的字符串对象作为键,以及值。
该数据库通过使用固定大小的桶中的单个键(主键)来存储数据,并使用散列技术来实现按键快速检索数据。
dbm软件包包含以下模块 –
- dbm.gnu 模块是一个指向由GNU项目实现的DBM库版本的接口。
-
dbm. ndbm模块提供了一个与UNIX nbdm实现的接口。
-
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'