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服务器端收发请求的实现代码
Sep 29 Python
Python正则表达式常用函数总结
Jun 24 Python
Python中顺序表的实现简单代码分享
Jan 09 Python
python 搭建简单的http server,可直接post文件的实例
Jan 03 Python
Python3 合并二叉树的实现
Sep 30 Python
Python大数据之使用lxml库解析html网页文件示例
Nov 16 Python
python求前n个阶乘的和实例
Apr 02 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
Jun 28 Python
几款Python编译器比较与推荐(小结)
Oct 15 Python
flask框架中的cookie和session使用
Jan 31 Python
Django实现在线无水印抖音视频下载(附源码及地址)
May 06 Python
Python MNIST手写体识别详解与试练
Nov 07 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
MYSQL环境变量设置方法
2007/01/15 PHP
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
2014/04/24 PHP
ThinkPHP中自定义目录结构的设置方法
2014/08/15 PHP
ThinkPHP中redirect用法分析
2014/12/05 PHP
PHP按指定键值对二维数组进行排序的方法
2015/12/22 PHP
关于php中的json_encode()和json_decode()函数的一些说明
2016/11/20 PHP
centos7上编译安装php7以php-fpm方式连接apache
2018/11/08 PHP
PHP时间类完整代码实例
2021/02/26 PHP
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
Jquery attr("checked") 返回checked或undefined 获取选中失效
2013/10/10 Javascript
js中AppendChild与insertBefore的用法详细解析
2013/12/16 Javascript
为指定的元素添加遮罩层的示例代码
2014/01/15 Javascript
javascript的解析执行顺序在各个浏览器中的不同
2014/03/17 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
2015/09/19 Javascript
JS实现左右拖动改变内容显示区域大小的方法
2015/10/13 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
JS判断form内所有表单是否为空的简单实例
2016/09/09 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
AngularJS路由切换实现方法分析
2017/03/17 Javascript
关于微信公众号开发无法支付的问题解决
2018/12/28 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
详解vue中使用axios对同一个接口连续请求导致返回数据混乱的问题
2019/11/06 Javascript
python不带重复的全排列代码
2013/08/13 Python
机器学习python实战之手写数字识别
2017/11/01 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
Python通过正则库爬取淘宝商品信息代码实例
2020/03/02 Python
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
医学生毕业自我鉴定
2014/03/26 职场文书
党员学习中共十八大报告思想汇报
2014/09/15 职场文书
餐厅服务员岗位职责
2015/02/09 职场文书