python利用dbm耐久字典(python微型数据库)详解
在一些python小型应用措施中,不需要干系型数据库时,可以利便的用耐久字典来存储名称/值对,它与python的字典很是雷同,主要区别在于数据是在磁盘读取和写入的。另一个区别在于dbm的键和值必需是字符串范例。
1.选择dbm模块
python支持许多dbm模块,遗憾的是,每个dbm模块建设的文件不兼容。
下表列出这些模块:
模块说明
dbm选择最好的dbm模块
dbm.dumb利用dbm库的一个简朴但可移植的实现
dbm.gnu利用GNU dbm的库
一般除非某个dbm库有非凡高级成果,那就用dbm模块。
2.建设耐久辞书
import dbm db = dbm.open('Bookmark', 'c') #添加选项 db['MyBlog'] = 'jonathanlife.sinaapp.com' print(db['MyBlog']) #生存,封锁 db.close()
open函数关于打开dbm的方法有三种:
符号用法
C打开文件对其读写,须要时建设该文件
W打开文件对其读写,假如文件不存在,不会建设它
N打开文件举办读写,但老是建设一个新的空缺文件
也可以通报另一种暗示模式的可选参数,该模式生存了一组UNIX文件权限,这里不细说。
3.会见耐久字典
从open函数返回的工具视作一个字典工具。对值的存取方法如下:
db[‘key’] = ‘value’ value = db[‘key’] #删除值: del db[‘key’] #遍历所有key: for key in db.keys(): #your code here
代码实例:
import dbm #open existing file db = dbm.open('websites', 'w') #add item db['first_data'] = 'Hello world' #verify the previous item remains if db['first_data'] != None: print('the data exists') else: print('Missing item') #iterate over the keys, may be slow for key in db.keys(): print("Key=",key," value=",db[key]) #delete item del db['first_data'] #close and save to disk db.close()