Python 中的 dbm 模块

本文介绍了Python的dbm模块,展示了如何使用它创建、读取和操作DBM数据库,包括dbm.gnu、dbm.ndbm和dbm.dumb的区别,以及它们的open()函数用法。重点讲述了键值对的字符串要求和示例代码的运行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python 的 dbm模块是 DBM数据库(dbm.gnu 或 dbm.ndbm)的通用接口。如果没有安装这些 DBM 数据库,则将使用简单的但速度较慢的模块 dbm.dumb 作为 DBM 数据库。
和 shelve 模块不同的是,dbm 模块中的键(key)和值(value)都必须是字符串,而 shelve 模块中的 value 可以是任何 Python 类型对象。
dbm.gnu、dbm.ndbm 和 dbm.dumb 模块的函数 open()都具有一致的接口,其格式如下:

open(filename[, flag[, mode]])

其中,
可选的标志参数 flag 必须是以下值之一:

  • ‘r’:打开一个存在的文件(默认值)。
  • ‘w’:打开文件对其读/写,如果文件不存在,则不会创建它。
  • ‘c’:打开文件对其进行读/写,如果不存在则创建该文件。
  • ‘n’:总是创建一个新的空白文件用于读/写。
    可选的参数 mode 是文件的 Unix 模式,仅在需要创建数据库时使用。它默认为八进制的 0o666。

下面程序创建一个新的空数据库,并写入一些“键-值”:

import dbm 
with dbm.open('test_dbm.db', 'n') as db: 
    db['name'] = '张伟' 
    db['ege'] = '23' 
    db['分数'] = '68.9' 

打开这个存在的数据库,并通过 keys()方法遍历其中的 key(键):

import dbm 
with dbm.open('test_dbm.db', 'r') as db: 
    print('keys():', db.keys())
 
    for k in db.keys(): 
        print('iterating:', k, db[k])
 
        print('db["分数"] =', db['分数'])

输出:

keys(): [b'name', b'ege', b'\xe5\x88\x86\xe6\x95\xb0'] 
iterating: b'name' b'\xe5\xbc\xa0\xe4\xbc\x9f' 
iterating: b'ege' b'23' 
iterating: b'\xe5\x88\x86\xe6\x95\xb0' b'68.9' 
db["分数"] = b'68.9'
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值