python使用dbm持久字典(python微型数据库)详解

在一些python小型应用程序中,不需要关系型数据库时,可以方便的用持久字典来存储名称/值对,它与python的字典非常类似,主要区别在于数据是在磁盘读取和写入的。另一个区别在于dbm的键和值必须是字符串类型。

1.选择dbm模块

python支持很多dbm模块,遗憾的是,每个dbm模块创建的文件不兼容。

下表列出这些模块:

模块说明

dbm选择最好的dbm模块

立即学习“Python免费学习笔记(深入)”;

dbm.dumb使用dbm库的一个简单但可移植的实现

dbm.gnu使用GNU dbm的库

一般除非某个dbm库有特殊高级功能,那就用dbm模块。

2.创建持久词典

import dbmdb = dbm.open('Bookmark', 'c')#添加选项db['MyBlog'] = 'jonathanlife.sinaapp.com'print(db['MyBlog'])#保存,关闭db.close()

登录后复制

open函数关于打开dbm的方式有三种:

标志用法

C打开文件对其读写,必要时创建该文件

W打开文件对其读写,如果文件不存在,不会创建它

N打开文件进行读写,但总是创建一个新的空白文件

也可以传递另一种表示模式的可选参数,该模式保存了一组UNIX文件权限,这里不细说。

3.访问持久字典

从open函数返回的对象视作一个字典对象。对值的存取方式如下:

db[‘key’] = ‘value’value = db[‘key’]#删除值:del db[‘key’]#遍历所有key:for key in db.keys():   #your code here

登录后复制

代码实例:

import dbm#open existing filedb = dbm.open('websites', 'w')#add itemdb['first_data'] = 'Hello world'    #verify the previous item remainsif db['first_data'] != None:    print('the data exists')else:    print('Missing item')   #iterate over the keys, may be slowfor key in db.keys():    print("Key=",key," value=",db[key])   #delete itemdel db['first_data']   #close and save to diskdb.close()

登录后复制

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2284208.html

(0)
上一篇 2025年2月27日 20:37:57
下一篇 2025年2月27日 20:38:11

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • python中mysql模块的内存泄露和中文乱码详解

    mysql-python的连接时,默认大家会写成 con=MySQLdb.connect(user=’xxx’,passwd=’xxx’,host=’xxx’,port=6600,charset=’gbk’) 登录后复制 一旦指定了&#82…

    编程技术 2025年2月27日
    100
  • Python生成验证码实例讲解

    在web开发中经常用到验证码,为了防止机器人注册或者恶意登陆和查询等,作用不容小觑 但是验证码其实不是一个函数就能搞定的,它需要生成图片和水印,其实每种语言都有相关的函数生成图片和文字水印。包括我熟悉的php,呵呵,今天主要来分享如何用py…

    编程技术 2025年2月27日
    200
  • 使用python发送邮件和接收邮件

    发邮件是大家工作中最常用到的。今天来看一下怎么用python来发送和接收邮件。 python实现发送和接收邮件功能主要用到poplib和smtplib模块。 poplib用于接收邮件,而smtplib负责发送邮件。 代码如下: #! /us…

    编程技术 2025年2月27日
    200
  • Python简单两步实现天气爬虫采集器

    说道爬虫大家或许感觉非常神秘,其实它没有我们想象的那么神奇(当然,google和baidu的爬虫是一场复杂和强大的,它的强大不是爬虫本身强大,而是后台的数据处理和数据挖掘算法非常强大),今天我们就来揭开它神秘的面纱。呵呵,简单两步就可以实现…

    编程技术 2025年2月27日
    200
  • python使用matplotlib绘图详解

    matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令api,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入gui应用程序中。它的文档相当完备,并且gallery页面中有上百幅缩略图,打开…

    2025年2月27日 编程技术
    200
  • python中json对象转换出错解决方法

    今天在使用python中的json转换碰到一个问题: 接收一个post的json字符串: s={“username”:”admin”,”password”:&#8221…

    编程技术 2025年2月27日
    200
  • python批量抓取美女图片

    学了python以后,知道python的抓取功能其实是非常强大的,当然不能浪费,呵呵。我平时很喜欢美女图,呵呵,程序员很苦闷的,看看美女,养养眼,增加点乐趣。好,那就用python写一个美女图自动抓取程序吧~~ 其中用到urllib2模块和…

    编程技术 2025年2月27日
    200
  • Python中map filter reduce的递归实现

    map2=lambda f,seq: [] if seq==[] else [f(seq[0])] + map2(f, seq[1:])  filter2=lambda f, seq: [] if seq==[] else ( [seq[0…

    编程技术 2025年2月27日
    200
  • 如何让python变得更快?

    python和其他脚本语言通常会被摒弃,因为它们相对于一些类似于c语言的编译型的语言来说效率很低。比如下面的斐波纳契数的例子: C语言中: int fib(int n){   if (n Python中:def fib(n):  if n …

    编程技术 2025年2月27日
    200
  • 教你用100多行写一个数据库

    本文介绍的是以为中国的it资深人士写的一个简单的数据库,没有我们使用的数据库那么强大,但是值得大家借鉴。可以用在特定环境中,更加灵活方便。 数据库的名字叫WawaDB,是用python实现的。由此可见python是灰常强大啊! 简介 记录日…

    编程技术 2025年2月27日
    200

发表回复

登录后才能评论