python 使用dbm持久字典示例

对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!

在一些python小型应用程序中,不需要关系型数据库时,可以方便的用持久字典来存储名称/值对,它与python的字典非常类似,主要区别在于数据是在磁盘读取和写入的。另一个区别在于dbm的键和值必须是字符串类型。

1.选择dbm模块

python支持很多dbm模块,遗憾的是,每个dbm模块创建的文件不兼容。

下表列出这些模块:

模块说明

dbm选择最好的dbm模块

dbm.dumb使用dbm库的一个简单但可移植的实现

dbm.gnu使用GNU dbm的库

一般除非某个dbm库有特殊高级功能,那就用dbm模块。

2.创建持久词典

# @param python使用dbm持久字典(python微型数据库)详解
# @author 编程之家 jb51.cc|www.512Pic.com 

import dbm
db = dbm.open('Bookmark','c')
#添加选项
db['MyBlog'] = 'jonathanlife.sinaapp.com'
print(db['MyBlog'])
#保存,关闭
db.close()

# End www.jb51.cc

open函数关于打开dbm的方式有三种:

标志用法

C打开文件对其读写,必要时创建该文件

W打开文件对其读写,如果文件不存在,不会创建它

N打开文件进行读写,但总是创建一个新的空白文件

 

也可以传递另一种表示模式的可选参数,该模式保存了一组UNIX文件权限,这里不细说。

3.访问持久字典

从open函数返回的对象视作一个字典对象。对值的存取方式如下:

# @param python使用dbm持久字典(python微型数据库)详解
# @author 编程之家 jb51.cc|www.512Pic.com 

db[‘key’] = ‘value’
value = db[‘key’]
#删除值:
del db[‘key’]
#遍历所有key:
for key in db.keys():
   #your code here

# End www.jb51.cc

代码实例:

# @param python使用dbm持久字典(python微型数据库)详解
# @author 编程之家 jb51.cc|www.512Pic.com 

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()

# End www.jb51.cc

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...