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网络爬虫出现乱码问题的解决方法
Jan 05 Python
Ubuntu安装Jupyter Notebook教程
Oct 18 Python
python 识别图片中的文字信息方法
May 10 Python
python在新的图片窗口显示图片(图像)的方法
Jul 11 Python
解决django中ModelForm多表单组合的问题
Jul 18 Python
Python 一键获取百度网盘提取码的方法
Aug 01 Python
python爬虫 爬取超清壁纸代码实例
Aug 16 Python
python计算auc的方法
Sep 09 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
Nov 13 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
Feb 03 Python
Python 把两层列表展开平铺成一层(5种实现方式)
Apr 07 Python
OpenCV-Python实现轮廓拟合
Jun 08 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
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
用Flash图形化数据(一)
2006/10/09 PHP
php4的session功能评述(二)
2006/10/09 PHP
PHP 5.3.0 安装分析心得
2009/08/07 PHP
php循环语句 for()与foreach()用法区别介绍
2012/09/05 PHP
如何判断php数组的维度
2013/06/10 PHP
jQuery load方法用法集锦
2011/12/06 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
jquery实现保存已选用户
2014/07/21 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
jQuery深拷贝Json对象简单示例
2016/07/06 Javascript
JavaScript无阻塞加载和defer、async详解
2017/02/26 Javascript
深入理解ES6的迭代器与生成器
2017/08/19 Javascript
js中对象和面向对象与Json介绍
2019/01/21 Javascript
解决layer弹出层的内容页点击按钮跳转到新的页面问题
2019/09/14 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
[12:36]《DOTA2》国服注册与激活指南全攻略
2013/04/28 DOTA
学习python (2)
2006/10/31 Python
python连接oracle数据库实例
2014/10/17 Python
python返回昨天日期的方法
2015/05/13 Python
使用Python简单的实现树莓派的WEB控制
2016/02/18 Python
详解Python函数可变参数定义及其参数传递方式
2017/08/02 Python
python3爬取数据至mysql的方法
2018/06/26 Python
Python实现矩阵相乘的三种方法小结
2018/07/26 Python
详解配置Django的Celery异步之路踩坑
2018/11/25 Python
python Gunicorn服务器使用方法详解
2019/07/22 Python
用python爬取历史天气数据的方法示例
2019/12/30 Python
pycharm中使用request和Pytest进行接口测试的方法
2020/07/31 Python
CSS3 transition 实现通知消息轮播条
2020/10/14 HTML / CSS
以工厂直接定价的传奇性能:Ben Hogan Golf
2019/01/04 全球购物
会计专业自我鉴定范文
2013/12/29 职场文书
人生感悟经典句子
2019/08/20 职场文书
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python
go goroutine 怎样进行错误处理
2021/07/16 Golang
Python pyecharts绘制条形图详解
2022/04/02 Python