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常见文件操作的函数示例代码
Nov 15 Python
自动化Nginx服务器的反向代理的配置方法
Jun 28 Python
基于python中pygame模块的Linux下安装过程(详解)
Nov 09 Python
Python中多个数组行合并及列合并的方法总结
Apr 12 Python
Python数据抓取爬虫代理防封IP方法
Dec 23 Python
实例介绍Python中整型
Feb 11 Python
python pandas模块基础学习详解
Jul 03 Python
详解Python3定时器任务代码
Sep 23 Python
Django form表单与请求的生命周期步骤详解
Jun 07 Python
python如何实现DES加密
Sep 21 Python
python 自动刷新网页的两种方法
Apr 20 Python
tensorboard 可视化之localhost:6006不显示的解决方案
May 22 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概述.
2006/10/09 PHP
第十节 抽象方法和抽象类 [10]
2006/10/09 PHP
在PHP中使用灵巧的体系结构
2006/10/09 PHP
PHP CKEditor 上传图片实现代码
2009/11/06 PHP
memcached 和 mysql 主从环境下php开发代码详解
2010/05/16 PHP
使用PHP遍历文件夹与子目录的函数代码
2011/09/26 PHP
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
JS关键字球状旋转效果的实例代码
2013/11/29 Javascript
JavaScript获取路径设计源码
2014/05/22 Javascript
javascript模拟C#格式化字符串
2015/08/26 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
2015/12/03 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
浅谈angular2子组件的事件传递(任意组件事件传递)
2018/09/30 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
js+cavans实现图片滑块验证
2020/09/29 Javascript
js实现简易计算器小功能
2020/11/18 Javascript
[01:01:41]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第二场 1月31日
2021/03/11 DOTA
基于python yield机制的异步操作同步化编程模型
2016/03/18 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
全球性的奢侈品梦工厂:Forzieri(福喜利)
2019/02/20 全球购物
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
财务副总经理工作职责
2013/11/25 职场文书
店长助理岗位职责
2013/12/13 职场文书
成考报名单位证明范本
2014/01/16 职场文书
致垒球运动员加油稿
2014/02/16 职场文书
2014年工人工作总结
2014/11/25 职场文书
长城导游词300字
2015/01/30 职场文书
小英雄雨来观后感
2015/06/09 职场文书
黑暗中的舞者观后感
2015/06/18 职场文书
《用字母表示数》教学反思
2016/02/17 职场文书
彻底理解golang中什么是nil
2021/04/29 Golang
Python 如何实现文件自动去重
2021/06/02 Python
Go语言实现Snowflake雪花算法
2021/06/08 Golang
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python
JavaScript流程控制(循环)
2021/12/06 Javascript