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 相关文章推荐
pydev使用wxpython找不到路径的解决方法
Feb 10 Python
Python Deque 模块使用详解
Jul 04 Python
http请求 request失败自动重新尝试代码示例
Jan 25 Python
Django使用Mysql数据库已经存在的数据表方法
May 27 Python
利用anaconda保证64位和32位的python共存
Mar 09 Python
python如何删除文件中重复的字段
Jul 16 Python
Django中使用session保持用户登陆连接的例子
Aug 06 Python
python开头的coding设置方法
Aug 08 Python
python利用openpyxl拆分多个工作表的工作簿的方法
Sep 27 Python
python中文分词库jieba使用方法详解
Feb 11 Python
python 删除excel表格重复行,数据预处理操作
Jul 06 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
Jul 14 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
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
php判断/计算闰年的方法小结【三种方法】
2019/07/06 PHP
javascript 写类方式之六
2009/07/05 Javascript
修复ie8&chrome下window的resize事件多次执行
2011/10/20 Javascript
js实现目录定位正文示例
2013/11/14 Javascript
Javascript this 关键字 详解
2014/10/22 Javascript
js实现拖拽效果
2015/02/12 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
2015/09/10 Javascript
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
详解Javascript继承的实现
2016/03/25 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
JS高仿抛物线加入购物车特效实现代码
2017/02/20 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
谈谈JS中的!!
2017/12/07 Javascript
nodejs简单实现TCP服务器端和客户端的聊天功能示例
2018/01/04 NodeJs
node.js部署之启动后台运行forever的方法
2018/05/23 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
vue监听input标签的value值方法
2018/08/27 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
2019/08/08 jQuery
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[01:02:07]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
django 捕获异常和日志系统过程详解
2019/07/18 Python
Python关键字及可变参数*args,**kw原理解析
2020/04/04 Python
python3 简单实现组合设计模式
2020/07/02 Python
Python中logger日志模块详解
2020/08/04 Python
详解基于canvas的视频遮罩插件
2018/01/04 HTML / CSS
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
英国领先的品牌珠宝和配件供应商:Acotis Jewellery
2018/03/07 全球购物
美国沙龙美发产品购物网站:Hair.com by L’Oreal
2020/11/09 全球购物
庆祝教师节演讲稿
2014/09/03 职场文书
班干部竞选演讲稿(精选5篇)
2019/09/24 职场文书
SpringBoot整合Minio文件存储
2022/04/03 Java/Android
Linux中文件的基本属性介绍
2022/06/01 Servers