Python之dbm模块的使用,dbm信号强度,0、标识位的介绍fl


0、标识位的介绍

flag介绍:    r : 只读    w : 写    n : 总是创建一个数据库    c : 存在不创建,不存在则创建dbm.gnu.open():flag扩展:    f : 快速模式,即是异步    s : 同步的模式


数据的存储格式有三种:
dbm.gnu
dbm.ndbm
dbm.dumb

1、dbm模块创建一个简单的数据库

技术图片
#!/usr/bin/env python3# encoding: utf-8import dbmwith dbm.open(‘example.db‘, ‘n‘) as db:    db[‘key‘] = ‘value‘    db[‘today‘] = ‘Monday‘    db[‘author‘] = ‘suk‘
dbm_new.py

运行效果

[[email protected] mnt]# python3 dbm_new.py [[email protected]-mysql mnt]# ll-rw-r--r-- 1 root root  171 Jan 12 16:18 dbm_new.py-rw-r--r-- 1 root root   52 Jan 12 16:19 example.db.bak-rw-r--r-- 1 root root 1027 Jan 12 16:19 example.db.dat-rw-r--r-- 1 root root   52 Jan 12 16:19 example.db.dir

2、dbm模块查看数据存储格式

技术图片
#!/usr/bin/env python3# encoding: utf-8import dbmprint(dbm.whichdb(‘example.db‘))
dbm_whichdb.py

运行效果

[[email protected] mnt]# python3 dbm_whichdb.py dbm.dumb

3、dbm模块读取数据库

技术图片
#!/usr/bin/env python3# encoding: utf-8import dbmwith dbm.open(‘example.db‘, ‘r‘) as db:    print(‘keys()‘, db.keys())    for k in db.keys():        print(‘迭代数据:‘, k, db[k])    print("db[‘author‘]", db[‘author‘])
dbm_read.py

运行效果

[[email protected] mnt]# python3 dbm_read.py keys() [b‘key‘, b‘today‘, b‘author‘]迭代数据: b‘key‘ b‘value‘迭代数据: b‘today‘ b‘Monday‘迭代数据: b‘author‘ b‘suk‘db[‘author‘] b‘suk‘

4、dbm模块设置值key必须是字符串或字节类型

技术图片
#!/usr/bin/env python3# encoding: utf-8import dbmwith dbm.open(‘example.db‘, ‘w‘) as db:    try:        db[1] = ‘one‘    except TypeError as err:        print(err)
dbm_intkeys.py

运行效果

[[email protected] mnt]# python3 dbm_intkeys.py keys must be bytes or strings

5、dbm模块设置值value必须是字符串或字节类型

技术图片
#!/usr/bin/env python3# encoding: utf-8import dbmwith dbm.open(‘example.db‘, ‘w‘) as db:    try:        db[‘one‘] =1    except TypeError as err:        print(err)
dbm_intvalue.py

运行效果

[[email protected] mnt]# python3 dbm_intvalue.py values must be bytes or strings

Python之dbm模块的使用

评论关闭