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 相关文章推荐
python2.7到3.x迁移指南
Feb 01 Python
python docx 中文字体设置的操作方法
May 08 Python
Python使用itertools模块实现排列组合功能示例
Jul 02 Python
python实现泊松图像融合
Jul 26 Python
python学习之hook钩子的原理和使用
Oct 25 Python
对python for 文件指定行读写操作详解
Dec 29 Python
pywinauto自动化操作记事本
Aug 26 Python
Python实现Word表格转成Excel表格的示例代码
Apr 16 Python
Python建造者模式案例运行原理解析
Jun 29 Python
python3跳出一个循环的实例操作
Aug 18 Python
Python self用法详解
Nov 28 Python
Python3使用Selenium获取session和token方法详解
Feb 16 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
150kHz到30Mhz完全冲浪手册
2020/03/20 无线电
利用PHP实现短域名互转
2013/07/05 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
2014/05/10 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
2014/06/26 PHP
php绘制一个矩形的方法
2015/01/24 PHP
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
JavaScript中的关键字"VAR"使用详解 分享
2013/07/31 Javascript
jquery与js函数冲突的两种解决方法
2013/09/09 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
2015/08/24 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
element上传组件循环引用及简单时间倒计时的实现
2018/10/01 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
2019/12/06 Javascript
vue-model实现简易计算器
2020/08/17 Javascript
全面了解Python的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
Python基于回溯法子集树模板解决找零问题示例
2017/09/11 Python
Win10下Python3.7.3安装教程图解
2019/07/08 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
python如何将两个txt文件内容合并
2019/10/18 Python
python3的UnicodeDecodeError解决方法
2019/12/20 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
python开发一款翻译工具
2020/10/10 Python
pandas按条件筛选数据的实现
2021/02/20 Python
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
2018/07/12 HTML / CSS
学生励志演讲稿
2014/01/06 职场文书
联谊活动策划书
2014/01/26 职场文书
家长对学生的评语
2014/04/18 职场文书
公司合作意向书范文
2014/07/30 职场文书
单位单身证明样本
2014/10/11 职场文书
2016廉洁教育心得体会
2016/01/20 职场文书
Netty结合Protobuf进行编解码的方法
2021/06/26 Java/Android
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers
Java基础——Map集合
2022/04/01 Java/Android