python开发_dbm_键值对存储_完整_博主推荐
'''
在python的应用程序中,不需要关系型数据库时,如MySQL
可以使用python提供的持久字典dbm来存储名称和值(键值对)
这个类似于java的中的java.util.Map对象。
区别如下: 存储在硬盘上面
dbm的键值对必须是字符串类型 python支持的dbm模块 dbm -- 常用的dbm模块
dbm.dumb -- 可移植的,简单的dbm库
dbm.gnu -- GNU dbm库 创建一个dbm对象
db = dbm.open('c:\\test\\Hongten.pag', 'c') 'r' -- open existing database for reading only(default)
'w' -- open existing database for reading and writing
'c' -- open database for reading and writing,creating it if it does'n exist
'n' -- always creat a new,empty database,open for reading and writing 给dbm对象赋值,dbm中的键值对都是以字符串形式出现
db['name'] = 'Hongten'
db['gender'] = 'M' 保存,在dbm对象关闭的时候即可保存数据
db.close() 删除值:
del db['name']
会把db对象中的key = 'name'的值删除 遍历整个db对象:
for key in db.keys():
print(key) '''
运行效果:
运行后,会在:c:\test目录下面出现:
Hongten.pag.bak
Hongten.pag.dat
Hongten.pag.dir
三个文件
输出部分:
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
保存数据...
##################################################
遍历所有数据...
b'name' = b'Hongten'
b'gender' = b'M'
b'address' = b'\xe5\xb9\xbf\xe4\xb8\x9c\xe7\x9c\x81\xe5\xb9\xbf\xe5\xb7\x9e\xe5\xb8\x82'
##################################################
获取[name]键值对数据...
b'Hongten'
##################################################
删除[gender]键值对数据...
遍历所有数据...
b'name' = b'Hongten'
b'address' = b'\xe5\xb9\xbf\xe4\xb8\x9c\xe7\x9c\x81\xe5\xb9\xbf\xe5\xb7\x9e\xe5\xb8\x82'
##################################################
删除所有键值对数据...
遍历所有数据...
>>>
============================================
代码部分:
============================================
#python dbm #Author : Hongten
#MailTo : hongtenzone@foxmail.com
#QQ : 648719819
#Blog : http://www.cnblogs.com/hongten
#Create : 2013-08-09
#Version: 1.0 import dbm
'''
在python的应用程序中,不需要关系型数据库时,如MySQL
可以使用python提供的持久字典dbm来存储名称和值(键值对)
这个类似于java的中的java.util.Map对象。
区别如下: 存储在硬盘上面
dbm的键值对必须是字符串类型 python支持的dbm模块 dbm -- 常用的dbm模块
dbm.dumb -- 可移植的,简单的dbm库
dbm.gnu -- GNU dbm库 创建一个dbm对象
db = dbm.open('c:\\test\\Hongten.pag', 'c') 'r' -- open existing database for reading only(default)
'w' -- open existing database for reading and writing
'c' -- open database for reading and writing,creating it if it does'n exist
'n' -- always creat a new,empty database,open for reading and writing 给dbm对象赋值,dbm中的键值对都是以字符串形式出现
db['name'] = 'Hongten'
db['gender'] = 'M' 保存,在dbm对象关闭的时候即可保存数据
db.close() 删除值:
del db['name']
会把db对象中的key = 'name'的值删除 遍历整个db对象:
for key in db.keys():
print(key) ''' db = dbm.open('c:\\test\\Hongten.pag', 'c') def get_dbm():
'''Open database, creating it if necessary.'''
return dbm.open('c:\\test\\Hongten.pag', 'c') def save(db):
'''保存数据'''
print('保存数据...')
db['name'] = 'Hongten'
db['gender'] = 'M'
db['address'] = '广东省广州市'
db.close() def fetchall(db):
'''遍历所有'''
print('遍历所有数据...')
if db is not None:
for key in db.keys():
print('{} = {}'.format(key, db[key]))
else:
print('dbm object is None!') def fetchone(db, key):
'''获取某个键值对'''
print('获取[{}]键值对数据...'.format(key))
if db is not None:
print(db[key])
else:
print('dbm object is None!') def delete(db, key):
'''删除某个键值对'''
print('删除[{}]键值对数据...'.format(key))
if db is not None:
del db[key]
else:
print('dbm object is None!') def deleteall(db):
'''删除所有键值对'''
print('删除所有键值对数据...')
if db is not None:
for key in db.keys():
del db[key]
else:
print('dbm object is None!') def main():
db = get_dbm()
save(db)
print('#' * 50)
db = get_dbm()
fetchall(db)
print('#' * 50)
fetchone(db, 'name')
print('#' * 50)
delete(db, 'gender')
fetchall(db)
print('#' * 50)
deleteall(db)
fetchall(db) if __name__ == '__main__':
main()
python开发_dbm_键值对存储_完整_博主推荐的更多相关文章
- Eclipse的企业开发时常用快捷键使用、优化配置(博主推荐)
不多说,直接上干货! 一.简介 eclipse可谓是Java开发界的神器,基本占据了大部分的Java开发市场,而且其官方还对其他语言提供支持,如C++,Ruby,JavaScript等等.为什么使用它 ...
- 实现键值对存储(三):Kyoto Cabinet 和LevelDB的架构比較分析
译自 Emmanuel Goossaert (CodeCapsule.com) 在本文中,我将会逐组件地把Kyoto Cabinet 和 LevelDB的架构过一遍.目标和本系列第二部分讲的差点儿相 ...
- python开发_tkinter_菜单选项中英文切换_菜单选项不可用操作_博主推荐
我使用的python版本为:3.3.2 如果你对python中tkinter模块的菜单操作不是很了解,你可以看看: python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推 ...
- python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐(二)
在上一篇blog:python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 中介绍了python中的tkinter的一些东西,你可能对tkinter有一定的了解了.这篇b ...
- 探索etcd,Zookeeper和Consul一致键值数据存储的性能
这篇博文是探索三个分布式.一致性键值数据存储软件性能的系列文章中的第一篇:etcd.Zookeeper和Consul,由etcd团队所写,可以让我们全面地了解如何评估三个分布式一致存储软件的性能.翻译 ...
- Python 字典(键值对)
Python 字典(键值对) 创建字典 特性:字典中的键不能变,而且唯一 格式:变量名={"键1":值1,"键2":值2} 函数 作用 dict() 强制转换为 ...
- python 对redis 键值对的操作
我们可以将Redis中的Hashes类型看成具有String Key和String Value的键值对容器.类似python中的dict,javascript的jaon,java 的map,每一个Ha ...
- map集合键值对存储,键值不重复,值可以重复
import java.util.HashMap; import java.util.Hashtable; import java.util.Iterator; import java.util.Li ...
- python开发_shelve_完整版_博主推荐
''' python中的shelve模块,可以提供一些简单的数据操作 他和python中的dbm很相似. 区别如下: 都是以键值对的形式保存数据,不过在shelve模块中, key必须为字符串,而值可 ...
随机推荐
- 深入理解Spring系列之八:常用的扩展接口
转载 https://mp.weixin.qq.com/s/XfhZltSlTall8wKwV_7fKg Spring不仅提供了一个进行快速开发的基础框架,而且还提供了很多可扩展的接口,用于满足一些额 ...
- jsoup抓取网页报错UnsupportedMimeTypeException
今天在用Jsoup爬虫的时候两次遇到下面错误 Exception in thread "main" org.jsoup.UnsupportedMimeTypeException: ...
- 如何通过掩码计算可用的IP数量
假设掩码是28,28也就是28个1.本身掩码是255.255.255.255那么转换成二进制也就是 11111111,11111111,11111111,11111111 那么28个1也就是: 111 ...
- UNIX环境高级编程学习笔记(十)为何 fork 函数会有两个不同的返回值【转】
转自:http://blog.csdn.net/fool_duck/article/details/46917377 以下是基于 linux 0.11 内核的说明. 在init/main.c第138行 ...
- 第一天开始使用Oracle
上半年虽然已经学习了Oracle,但是基本上实验课都没怎么实践过,感觉自己之前过得太水了! 在我的印象里,Oracle 的难度相当于工程师的建设一个亚洲最大的医院一样,也如医生的99%失败率的手术: ...
- Mac——mac安装软件
命令行: perl: curl -L http://xrl.us/installperlosx | bash 参考资料: https://blog.csdn.net/yuxin6866/article ...
- PHP利用rand(1,100)函数产生10个1~100之间的随机数
//echo rand(1,100); $max=0; $min=100; for($i=0;$i<=9;$i++){ $rand[$i]=rand(1,100); if($rand[$i]&g ...
- BootStrap的table表格,栅格系统,form表单的样式
BootStrap BootStrap的简介 1. 什么是Bootstrap 由两个前端设计师开发的一个前端的框架(Html,css,js) 简化了程序员写css的代码 2. 为什么使用B ...
- 网页查看源码中<div>的含义
代码如下: /** HTML转义 **/ String s = HtmlUtils.htmlEscape("<div>hello world</div><p&g ...
- Linux Shell基础篇——变量
一.Shell中的变量 注:这里所说的Shell是Bash Shell,我姑且统称为Shell. Shell中的变量分为用户自定义变量.环境变量.位置参数变量.预定义变量.在Shell中,变量的默认类 ...