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获得时间的实例说明
Mar 25 Python
python发送HTTP请求的方法小结
Jul 08 Python
Django中传递参数到URLconf的视图函数中的方法
Jul 18 Python
通过5个知识点轻松搞定Python的作用域
Sep 09 Python
Python二进制串转换为通用字符串的方法
Jul 23 Python
python requests 测试代理ip是否生效
Jul 25 Python
在Python 中实现图片加框和加字的方法
Jan 26 Python
python爬虫-模拟微博登录功能
Sep 12 Python
python使用pip安装SciPy、SymPy、matplotlib教程
Nov 20 Python
python实现交并比IOU教程
Apr 16 Python
Tensorflow与Keras自适应使用显存方式
Jun 22 Python
python推导式的使用方法实例
Feb 28 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输出指定时间以前时间格式的方法
2015/03/21 PHP
php获取、检查类名、函数名、方法名的函数方法
2015/06/25 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
jquery1.5.1中根据元素ID获取元素对象的代码
2011/04/02 Javascript
SharePoint 客户端对象模型 (一) ECMA Script
2011/05/22 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
2014/02/19 Javascript
node.js中的fs.linkSync方法使用说明
2014/12/15 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
[02:10]探秘浦东源深体育馆 DOTA2 Supermajor不见不散
2018/05/17 DOTA
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python中__name__的使用实例
2015/04/14 Python
python 生成器协程运算实例
2017/09/04 Python
pandas中去除指定字符的实例
2018/05/18 Python
Django添加feeds功能的示例
2018/08/07 Python
解决python3中cv2读取中文路径的问题
2018/12/05 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
WxPython实现无边框界面
2019/11/18 Python
实现Python与STM32通信方式
2019/12/18 Python
Python中join()函数多种操作代码实例
2020/01/13 Python
Python运行DLL文件的方法
2020/01/17 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
python 错误处理 assert详解
2020/04/20 Python
JAVA及PYTHON质数计算代码对比解析
2020/06/10 Python
SQL Server面试题
2016/10/17 面试题
科长竞聘演讲稿
2014/05/16 职场文书
优秀的应届生自荐信
2014/05/23 职场文书
秋冬农业生产标语
2014/10/09 职场文书
党员检讨书范文
2014/12/27 职场文书
世界遗产的导游词
2015/02/13 职场文书
学生会任命书范本
2015/09/21 职场文书