0、标识位的介绍
flag介绍: r : 只读 w : 写 n : 总是创建一个数据库 c : 存在不创建,不存在则创建 dbm.gnu.open():flag扩展: f : 快速模式,即是异步 s : 同步的模式 数据的存储格式有三种:
dbm.gnudbm.ndbmdbm.dumb
1、dbm模块创建一个简单的数据库
#!/usr/bin/env python3 # encoding: utf-8 import dbm with 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-8 import dbm print(dbm.whichdb(‘example.db‘))
dbm_whichdb.py
运行效果
[[email protected] mnt]# python3 dbm_whichdb.py dbm.dumb
3、dbm模块读取数据库
#!/usr/bin/env python3 # encoding: utf-8 import dbm with 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-8 import dbm with 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-8 import dbm with 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
原文地址:https://www.cnblogs.com/ygbh/p/12182967.html
时间: 2024-10-07 16:45:46