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 文件与目录操作
Dec 24 Python
使用python获取CPU和内存信息的思路与实现(linux系统)
Jan 03 Python
Django的session中对于用户验证的支持
Jul 23 Python
Python多线程爬虫简单示例
Mar 04 Python
Python线程创建和终止实例代码
Jan 20 Python
Python实现购物车程序
Apr 16 Python
对Tensorflow中的矩阵运算函数详解
Jul 27 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 Python
opencv转换颜色空间更改图片背景
Aug 20 Python
TensorFlow 多元函数的极值实例
Feb 10 Python
Python requests模块session代码实例
Apr 14 Python
解决tensorflow 释放图,删除变量问题
Jun 23 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
服务器web工具 php环境下
2010/12/29 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
2015/03/18 PHP
PHP中的魔术方法总结和使用实例
2015/05/11 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
PHP页面静态化――纯静态与伪静态用法详解
2020/06/05 PHP
60行js代码实现俄罗斯方块
2015/03/31 Javascript
提高jQuery性能优化的技巧
2015/08/03 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
JavaScript必知必会(二) null 和undefined
2016/06/08 Javascript
JavaScript中闭包之浅析解读(必看篇)
2016/08/25 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
Javascript数组中push方法用法分析
2016/10/31 Javascript
jquery 正整数数字校验正则表达式
2017/01/10 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
Vue父组件如何获取子组件中的变量
2019/07/24 Javascript
解决vuex数据异步造成初始化的时候没值报错问题
2019/11/13 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
jQuery实现简单弹幕制作
2020/12/10 jQuery
Python利用正则表达式匹配并截取指定子串及去重的方法
2015/07/30 Python
win7上python2.7连接mysql数据库的方法
2017/01/14 Python
使用Python设计一个代码统计工具
2018/04/04 Python
解决Python找不到ssl模块问题 No module named _ssl的方法
2019/04/29 Python
PyQt5实现从主窗口打开子窗口的方法
2019/06/19 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
Trip.com澳大利亚:在线旅行社
2019/12/01 全球购物
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
入团者的自我评价分享
2013/12/02 职场文书
网络营销计划
2015/01/17 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
会议邀请函
2015/01/30 职场文书
元旦晚会主持词开场白
2015/05/28 职场文书
详解Vue的sync修饰符
2021/05/15 Vue.js
pytorch 实现多个Dataloader同时训练
2021/05/29 Python