Python之dbm模塊的使用


 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-8

import dbm

with dbm.open('example.db', 'n') as db:
    db['key'] = 'value'
    db['today'] = 'Monday'
    db['author'] = 'suk'
dbm_new.py

運行效果

[root@python-mysql mnt]# python3 dbm_new.py 

[root@python-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

運行效果

[root@python-mysql 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

 運行效果

[root@python-mysql 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

運行效果

[root@python-mysql 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

 運行效果

[root@python-mysql mnt]# python3 dbm_intvalue.py 
values must be bytes or strings


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM