在python的应用程序中,不需要关系型数据库时,如MySQL可以使用python提供的持久字典dbm来存储名称和值(键值对)
来源:互联网 发布:淘宝店铺开店流程 编辑:程序博客网 时间:2024/06/06 06:25
转载自http://www.cnblogs.com/hongten/p/hongten_python_dbm.html
'''
在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的应用程序中,不需要关系型数据库时,如MySQL可以使用python提供的持久字典dbm来存储名称和值(键值对)
- python字典键值对的添加和遍历
- JS端的localStorage:HTML5提供的本地存储(可以称为“键值对”数据库)
- Python(12):dbm持久字典
- python字典多键值及重复键值的使用
- Python中字典容器dict默认按照键值从大到小存储的证明
- python一道关于颠倒字典中键值的问题
- Python中对mysql数据库的操作
- python的【字典dict】:创建、访问、更新、删除;查看键、值、键值对;遍历;排序
- python的【字典dict】:创建、访问、更新、删除;查看键、值、键值对;遍历;排序
- 如何用在python中迭代一个列表以及字典的索引和值?
- python链接mysql数据库并以键值对的形式查询显示
- Python中对字典按其键值进行排序
- python字典多键值及重复键值的使用方法(详解)
- dbm和功率值的关系
- python 查询mysql的时候以键值对方式查询
- kvc和字典在创建键值对时的相同与区别(setValue forKey )(setObject forKey)
- python 把文件中每列的第一个值作为字典中的key键值索引
- jquery的几种ajax方式
- c++ 迭代器与下标访问效率问题
- bootstrap(组件)
- 任务管理(3.3)------嵌入式系统软件及操作系统知识
- Associative Containers
- 在python的应用程序中,不需要关系型数据库时,如MySQL可以使用python提供的持久字典dbm来存储名称和值(键值对)
- 遥感在水环境监测中的应用
- android新版本下获取屏幕宽度和高度的方法
- 初学弹窗
- poj 3620 求最大连通水池的个数(深度优先搜索)
- 在使用Android-PullToRefresh前遇到的问题
- Notification讲解
- stm32 对GPIO口操作后 寄存器复位情况
- date命令使用