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实现代码行数统计示例分享
Feb 10 Python
在Docker上部署Python的Flask框架的教程
Apr 08 Python
python常用函数详解
Sep 13 Python
Python做文本按行去重的实现方法
Oct 19 Python
Python操作MySQL数据库的三种方法总结
Jan 30 Python
python实战串口助手_解决8串口多个发送的问题
Jun 12 Python
Python中的几种矩阵乘法(小结)
Jul 10 Python
详解Python 字符串相似性的几种度量方法
Aug 29 Python
python实现多进程按序号批量修改文件名的方法示例
Dec 30 Python
关于Pytorch的MLP模块实现方式
Jan 07 Python
Python re.sub 反向引用的实现
Jul 07 Python
PyTorch中的torch.cat简单介绍
Mar 17 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
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
基于pear auth实现登录验证
2010/02/26 PHP
基于simple_html_dom的使用小结
2013/07/01 PHP
PHP获取一年有几周以及每周开始日期和结束日期
2015/08/06 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
2013/10/18 Javascript
JavaScript中匿名函数用法实例
2015/03/23 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
JS实现动画兼容性的transition和transform实例分析
2016/12/13 Javascript
js实现前端图片上传即时预览功能
2017/08/02 Javascript
Vue.js 中的 v-cloak 指令及使用详解
2018/11/19 Javascript
Vue实现商品详情页的评价列表功能
2019/09/04 Javascript
node爬取新型冠状病毒的疫情实时动态
2020/02/06 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
简单上手Python中装饰器的使用
2015/07/12 Python
详解配置Django的Celery异步之路踩坑
2018/11/25 Python
python实现最小二乘法线性拟合
2019/07/19 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
2019/08/13 Python
PyCharm 2019.3发布增加了新功能一览
2019/12/08 Python
实现Python与STM32通信方式
2019/12/18 Python
python装饰器代替set get方法实例
2019/12/19 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
美国羽绒床上用品第一品牌:Pacific Coast
2018/08/25 全球购物
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
美国主要的特色咖啡和茶公司:Peet’s Coffee
2020/02/14 全球购物
地球鞋加拿大官网:Earth Shoes Canada
2020/11/17 全球购物
捷科时代的软件测试笔试题
2015/11/09 面试题
毕业生的自我鉴定
2013/10/29 职场文书
财务会计人员岗位职责
2013/11/30 职场文书
2014年公司植树节活动方案
2014/03/04 职场文书
大学生学习计划书
2014/09/15 职场文书
2015年世界无烟日活动方案
2015/05/04 职场文书
JavaScript 数组去重详解
2021/09/15 Javascript
Django基础CBV装饰器和中间件
2022/03/22 Python