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使用ctypes模块调用windowsapi获取系统版本示例
Apr 17 Python
python对url格式解析的方法
May 13 Python
python正则实现计算器功能
Dec 14 Python
Python装饰器用法实例总结
Feb 07 Python
python实现寻找最长回文子序列的方法
Jun 02 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
Aug 02 Python
对python中if语句的真假判断实例详解
Feb 18 Python
Python 实现数据结构中的的栈队列
May 16 Python
django将网络中的图片,保存成model中的ImageField的实例
Aug 07 Python
Jupyter加载文件的实现方法
Apr 14 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
Mar 01 Python
python利用pandas分析学生期末成绩实例代码
Jul 09 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
discuz程序的PHP加密函数原理分析
2011/08/05 PHP
PHP通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
php实现图片转换成ASCII码的方法
2015/04/03 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
2018/01/27 PHP
PHP MVC框架中类的自动加载机制实例分析
2019/09/18 PHP
xml和web特殊字符
2009/04/28 Javascript
Extjs学习笔记之三 extjs form更多的表单项
2010/01/07 Javascript
JavaScript 嵌套函数指向this对象错误的解决方法
2010/03/15 Javascript
jQuery ready函数滥用分析
2011/02/16 Javascript
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
js实现的倒计时按钮实例
2015/06/24 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
2015/11/07 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
2016/02/25 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
jQuery对底部导航进行跳转并高亮显示的实例代码
2019/04/23 jQuery
layui 根据后台数据动态创建下拉框并同时默认选中的实例
2019/09/02 Javascript
简明 Python 基础学习教程
2007/02/08 Python
Python模块学习 filecmp 文件比较
2012/08/27 Python
python中global用法实例分析
2015/04/30 Python
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
利用Python开发实现简单的记事本
2016/11/15 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
2017/04/05 Python
对Python 语音识别框架详解
2018/12/24 Python
对Pytorch神经网络初始化kaiming分布详解
2019/08/18 Python
Python关于反射的实例代码分享
2020/02/20 Python
Python如何实现FTP功能
2020/05/28 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
奢华的意大利皮革手袋:Bene Handbags
2019/10/29 全球购物
理货员的岗位职责
2013/11/23 职场文书
秋天的怀念教学反思
2014/04/28 职场文书
群众路线个人剖析材料
2014/10/07 职场文书
税务会计岗位职责
2015/04/02 职场文书
js前端图片加载异常兜底方案
2022/06/21 Javascript