Python中的anydbm模版和shelve模版使用指南


Posted in Python onJuly 09, 2015

好久没写这系列的文章了,我越来越喜欢用python了,它在我的工作中占据的比例越来越大。废话少说,直接进入主题。

 anydbm允许我们将一个磁盘上的文件与一个“dict-like”对象关联起来,操作这个“dict-like”对象,就像操作dict对象一样,最后可以将“dict-like”的数据持久化到文件。对这个”dict-like”对象进行操作的时候,key和value的类型必须是字符串。下面是使用anydbm的例子:
   

#coding=utf-8
 
import anydbm
 
def CreateData():
  try:
    db = anydbm.open('db.dat', 'c')
    
# key与value必须是字符串
    
# db['int'] = 1
    
# db['float'] = 2.3
    db['string'] = "I like python."
    db['key'] = 'value'
  finally:
    db.close()
 
def LoadData():
  db = anydbm.open('db.dat', 'r')
  for item in db.items():
    print item
  db.close()
 
if __name__ == '__main__':
  CreateData()
  LoadData()

anydbm.open(filename[, flag[, mode]]),filename是关联的文件路径,可选参数flag可以是: ‘r': 只读, ‘w': 可读写, ‘c': 如果数据文件不存在,就创建,允许读写; ‘n': 每次调用open()都重新创建一个空的文件。mode是unix下文件模式,如0666表示允许所有用户读写。
    shelve模块是anydbm的增强版,它支持在”dict-like”对象中存储任何可以被pickle序列化的对象,但key也必须是字符串。同样的例子,与shelve来实现:
 

import shelve
 
def CreateData():
  try:
    db = shelve.open('db.dat', 'c')
    
# key与value必须是字符串
    db['int'] = 1
    db['float'] = 2.3
    db['string'] = "I like python."
    db['key'] = 'value'
  finally:
    db.close()
 
def LoadData():
  db = shelve.open('db.dat', 'r')
  for item in db.items():
    print item
  db.close()
 
if __name__ == '__main__':
  CreateData()
  LoadData()
Python 相关文章推荐
python 判断一个进程是否存在
Apr 09 Python
使用python的chardet库获得文件编码并修改编码
Jan 22 Python
python通过floor函数舍弃小数位的方法
Mar 17 Python
python利用正则表达式排除集合中字符的功能示例
Oct 10 Python
python的格式化输出(format,%)实例详解
Jun 01 Python
浅析python3字符串格式化format()函数的简单用法
Dec 07 Python
python爬虫之自制英汉字典
Jun 24 Python
python使用原始套接字发送二层包(链路层帧)的方法
Jul 22 Python
Pycharm如何运行.py文件的方法步骤
Mar 03 Python
python tkinter GUI绘制,以及点击更新显示图片代码
Mar 14 Python
python 将html转换为pdf的几种方法
Dec 29 Python
python中redis包操作数据库的教程
Apr 19 Python
python冒泡排序简单实现方法
Jul 09 #Python
python基于BeautifulSoup实现抓取网页指定内容的方法
Jul 09 #Python
python简单猜数游戏实例
Jul 09 #Python
Python使用turtule画五角星的方法
Jul 09 #Python
python查看zip包中文件及大小的方法
Jul 09 #Python
Python基于checksum计算文件是否相同的方法
Jul 09 #Python
Python实现文件按照日期命名的方法
Jul 09 #Python
You might like
解析php中eclipse 用空格替换 tab键
2013/06/24 PHP
PHP命名空间(namespace)的使用基础及示例
2014/08/18 PHP
PHP Streams(流)详细介绍及使用
2015/05/12 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
jquery应该如何来设置改变按钮input的onclick事件
2012/12/10 Javascript
javascript中with()方法的语法格式及使用
2014/08/04 Javascript
jQuery实现在列表的首行添加数据
2015/05/19 Javascript
AngularJS使用angular-formly进行表单验证
2015/12/27 Javascript
json实现添加、遍历与删除属性的方法
2016/06/17 Javascript
彻底学会Angular.js中的transclusion
2017/03/12 Javascript
js中的DOM模拟购物车功能
2017/03/22 Javascript
Angular2中select用法之设置默认值与事件详解
2017/05/07 Javascript
Sublime Text新建.vue模板并高亮(图文教程)
2017/10/26 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
微信小程序webSocket的使用方法
2020/02/20 Javascript
vue elementui tree 任意级别拖拽功能代码
2020/08/31 Javascript
[03:24]CDEC.Y赛前采访 努力备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
python机器学习理论与实战(六)支持向量机
2018/01/19 Python
Python 12306抢火车票脚本
2018/02/07 Python
解决python ogr shp字段写入中文乱码的问题
2018/12/31 Python
在python 中实现运行多条shell命令
2019/01/07 Python
python利用7z批量解压rar的实现
2019/08/07 Python
Django之全局使用request.user.username的实例详解
2020/05/14 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
Nike俄罗斯官方网站:Nike RU
2021/03/05 全球购物
Java如何支持I18N?
2016/10/31 面试题
建筑工程实习自我鉴定
2013/09/19 职场文书
公务员个人自我评价分享
2013/11/06 职场文书
后勤主管工作职责
2013/12/07 职场文书
应届电子商务毕业自荐书范文
2014/02/11 职场文书
公司年会主持词
2014/03/22 职场文书
计算机多媒体专业自荐信
2014/07/04 职场文书
党员个人总结自评
2015/02/14 职场文书
PHP实现考试倒计时功能代码
2021/04/16 PHP
jquery插件实现悬浮的菜单
2021/04/24 jQuery