码迷,mamicode.com
首页 > 数据库 > 详细

Python之dbm模块的使用

时间:2020-01-12 18:40:41      阅读:317      评论:0      收藏:0      [点我收藏+]

标签:byte   bytes   --   hide   port   hid   lap   python3   event   

 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() [bkey, btoday, bauthor]
迭代数据: bkey bvalue
迭代数据: btoday bMonday
迭代数据: bauthor bsuk
db[author] bsuk

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

Python之dbm模块的使用

标签:byte   bytes   --   hide   port   hid   lap   python3   event   

原文地址:https://www.cnblogs.com/ygbh/p/12182967.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!