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 26 Python
Python中的作用域规则详解
Jan 30 Python
Python3读取文件常用方法实例分析
May 22 Python
Python获取运行目录与当前脚本目录的方法
Jun 01 Python
Python 修改列表中的元素方法
Jun 26 Python
Python中最大递归深度值的探讨
Mar 05 Python
python制作图片缩略图
Apr 30 Python
python变量的存储原理详解
Jul 10 Python
python实现简单聊天室功能 可以私聊
Jul 12 Python
对django 模型 unique together的示例讲解
Aug 06 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
Jan 14 Python
python游戏开发Pygame框架
Apr 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将数据导入到Foxmail
2006/10/09 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
PHP Directory 函数的详解
2013/03/07 PHP
mantis安装、配置和使用中的问题小结
2014/07/14 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
2019/06/12 PHP
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
js实现收缩菜单效果实例代码
2013/10/30 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
jquery获取所有选中的checkbox实现代码
2016/05/26 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
Bootstrap如何创建表单
2016/10/21 Javascript
jQuery获取选中单选按钮radio的值
2016/12/27 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
2018/03/12 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
微信运维交互机器人的示例代码
2018/11/12 Javascript
layui插件表单验证提交触发提交的例子
2019/09/09 Javascript
python 垃圾收集机制的实例详解
2017/08/20 Python
python实现下载pop3邮件保存到本地
2018/06/19 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
TensorBoard 计算图的查看方式
2020/02/15 Python
PUMA官方商城:世界领先的运动品牌之一
2016/11/16 全球购物
Shell如何接收变量输入
2012/09/24 面试题
美术专业学生个人自我评价
2013/09/19 职场文书
失业者真诚求职信范文
2013/12/25 职场文书
中餐厅主管的职责范文
2014/02/04 职场文书
物流专业求职信
2014/06/30 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
先进集体申报材料
2014/12/25 职场文书
高中教师个人总结
2015/02/10 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
《这片土地是神圣的》教学反思
2016/02/16 职场文书
《风娃娃》教学反思
2016/02/18 职场文书
高中生物教学反思
2016/02/20 职场文书
创业计划书之o2o水果店
2019/08/30 职场文书
Redis 哨兵集群的实现
2021/06/18 Redis