Python 与 Unix 数据库 (dbm) 接口
Python 内置库中的 dbm 包提供了一个类似字典的接口,用于 DBM 风格的数据库。dbm 库是一个简单的数据库引擎,由 Ken Thompson 编写。DBM 代表数据库管理器 (DataBase Manager),用于 Unix 操作系统,该库使用单个键(主键)将任意数据存储在固定大小的桶中,并使用哈希技术通过键快速检索数据。
dbm 包中包含以下模块:
dbm.ndbm 模块提供与 Unix “(n)dbm” 库的接口。Dbm 对象的行为类似于字典,键和值应存储为字节。该模块不支持 items() 和 values() 方法。
dbm.dumb 模块提供了一个持久性字典式接口,完全用 Python 编写。与 dbm.gnu 等其他模块不同,它不需要外部库。与其他持久性映射一样,键和值始终存储为字节。
这些模块在 Python 的 shelve 模块中被内部使用。与 shelve 数据库一样,用户指定的数据库名称带有 '.dir' 后缀。dbm 对象的 whichdb() 函数指示当前 Python 安装中可用的 dbm 实现。
>>> dbm.whichdb('mydbm.db')‘dbm.dumb’
>>> db = dbm.open('mydbm.db','n')
>>> db['name'] = Rajani Deshmukh'
>>> db['address'] = 'Shivajinagar Pune'
>>> db['PIN'] = '431001'
>>> db.close()open() 函数允许使用这些标志:
值 | 含义 |
|---|---|
| ‘r’ | 以只读方式打开现有数据库(默认) |
| ‘w’ | 以读写方式打开现有数据库 |
| ‘c’ | 以读写方式打开数据库,如果数据库不存在则创建它 |
| ‘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' : Rajani Deshmukh'
b'address' : b'Shivajinagar Pune'
b'PIN' : b'431001'dbm 对象还提供以下方法:
**sync():** 同步磁盘上的目录和数据文件。此方法由 Shelve.sync() 方法调用。
**close():** 关闭 dbm 数据库。
gnu dbm 对象具有以下方法:
firstkey()
可以使用此方法和 nextkey() 方法遍历数据库中的每个键。此方法返回起始键。
**gdbm.nextkey(key):** 返回遍历中跟随 key 的键。
**gdbm.reorganize():** 此函数将重新组织数据库。gnu dbm 对象不会缩短数据库文件的长度,除非使用此重新组织功能;否则,已删除的文件空间将被保留并被重新用作添加新的 (键,值) 对。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP