日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

你知道 Python 其實(shí)自帶了小型數(shù)據(jù)庫嗎

來源: 責(zé)編: 時(shí)間:2023-11-01 17:04:33 314觀看
導(dǎo)讀dbmDBM(DataBase Manager)是一種文件系統(tǒng),專門用于鍵值對(duì)的存儲(chǔ),最初是在 Unix 平臺(tái)實(shí)現(xiàn),現(xiàn)在其它平臺(tái)也可以用。對(duì)于 KV 模型,DBM 提供了一個(gè)輕量級(jí)、高效的存儲(chǔ)解決方案。總的來說,DBM 具有如下特點(diǎn):簡(jiǎn)單快速:非常簡(jiǎn)單易用,讀

dbm

g8N28資訊網(wǎng)——每日最新資訊28at.com

DBM(DataBase Manager)是一種文件系統(tǒng),專門用于鍵值對(duì)的存儲(chǔ),最初是在 Unix 平臺(tái)實(shí)現(xiàn),現(xiàn)在其它平臺(tái)也可以用。對(duì)于 KV 模型,DBM 提供了一個(gè)輕量級(jí)、高效的存儲(chǔ)解決方案。g8N28資訊網(wǎng)——每日最新資訊28at.com

總的來說,DBM 具有如下特點(diǎn):g8N28資訊網(wǎng)——每日最新資訊28at.com

  • 簡(jiǎn)單快速:非常簡(jiǎn)單易用,讀取和寫入操作都很快,適合存儲(chǔ)少量數(shù)據(jù)。
  • 鍵值對(duì)存儲(chǔ):數(shù)據(jù)是以鍵值對(duì)形式存儲(chǔ)的,你可以像操作 Python 字典一樣。
  • 文件存儲(chǔ):數(shù)據(jù)存在具體的文件中,可以輕松地備份和轉(zhuǎn)移。
  • 不支持復(fù)雜查詢:如果需要執(zhí)行復(fù)雜查詢或需要關(guān)系型數(shù)據(jù)庫的功能,DBM 可能不是一個(gè)好選擇。

而 Python 標(biāo)準(zhǔn)庫提供了一個(gè) dbm 模塊,它實(shí)現(xiàn)了 DBM 文件系統(tǒng)的功能,來看一下它的用法。g8N28資訊網(wǎng)——每日最新資訊28at.com

import dbm# 第一個(gè)參數(shù)是文件名# 第二個(gè)參數(shù)是模式,有以下幾種#     r:只讀,要求文件必須存在,默認(rèn)就是這個(gè)模式#     w:可讀可寫,要求文件必須存在#     c:可讀可寫,文件不存在會(huì)創(chuàng)建,存在則追加#     n:可讀可寫,文件不存在會(huì)創(chuàng)建,存在則清空# 第三個(gè)參數(shù)是權(quán)限,用八進(jìn)制數(shù)字表示,默認(rèn) 0o666,即可讀可寫不可執(zhí)行db = dbm.open("store", "c")# 打開文件就可以存儲(chǔ)值了,key 和 value 必須是字符串或 bytes 對(duì)象db["name"] = "S せんせい"db["age"] = "18"db[b"corporation"] = "小摩".encode("utf-8")# 關(guān)閉文件,將內(nèi)容寫到磁盤上db.close()

非常簡(jiǎn)單,就像操作字典一樣,并且 key 是唯一的,如果存在則替換。執(zhí)行完后,當(dāng)前目錄會(huì)多出一個(gè) store.db 文件。g8N28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片g8N28資訊網(wǎng)——每日最新資訊28at.com

我們打開它,然后讀取剛才寫入的鍵值對(duì)。g8N28資訊網(wǎng)——每日最新資訊28at.com

import dbmdb = dbm.open("store", "c")# 獲取所有的 key,直接返回一個(gè)列表print(db.keys())"""[b'corporation', b'name', b'age']"""# 判斷一個(gè) key 是否存在,key 可以是字符串或 bytes 對(duì)象print("name" in db, "NAME" in db)"""True False"""# 獲取一個(gè) key 對(duì)應(yīng)的 value,得到的是 bytes 對(duì)象print(db["name"].decode("utf-8"))print(db[b"corporation"].decode("utf-8"))"""S せんせい小摩"""# key 如果不存在,會(huì)拋出 KeyError,我們可以使用 get 方法print(db.get("NAME", b"unknown"))"""b'unknown'"""# 當(dāng)然也可以使用 setdefault 方法,key 不存在時(shí),自動(dòng)寫進(jìn)去print(db.setdefault("gender", b"female"))"""b'female'"""print(db["gender"])"""b'female'"""

非常簡(jiǎn)單,當(dāng)你需要存儲(chǔ)的數(shù)據(jù)量不適合放在內(nèi)存中,但又沒必要引入數(shù)據(jù)庫,那么不妨試試使用 dbm 模塊吧。g8N28資訊網(wǎng)——每日最新資訊28at.com

當(dāng)然啦,dbm 雖然很方便,但它只能持久化 bytes 對(duì)象,字符串也是轉(zhuǎn)成 bytes 對(duì)象之后再存儲(chǔ)的。所以除了 dbm 之外,還有一個(gè)標(biāo)準(zhǔn)庫模塊 shelve,它可以持久化任意對(duì)象。g8N28資訊網(wǎng)——每日最新資訊28at.com

shelve

shelve 的使用方式和 dbm 幾乎是一致的,區(qū)別就是 shelve 的序列化能力要更強(qiáng),當(dāng)然速度自然也就慢一些。g8N28資訊網(wǎng)——每日最新資訊28at.com

import shelve# 第二個(gè)參數(shù)表示模式,默認(rèn)是 c# 因此文件不存在會(huì)創(chuàng)建,存在則追加sh = shelve.open("shelve")sh["name"] = ["S 老師", "高老師", "電烤 
                

本文鏈接:http://www.www897cc.com/showinfo-26-16369-0.html你知道 Python 其實(shí)自帶了小型數(shù)據(jù)庫嗎

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: Go語言中的閉包:封裝數(shù)據(jù)與功能的強(qiáng)大工具

下一篇: 一文了解負(fù)載均衡器、反向代理、API 網(wǎng)關(guān)區(qū)別

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 官方承諾:K60至尊版將會(huì)首批升級(jí)MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版將會(huì)搭載天璣9200+處理器和獨(dú)顯芯片X7的同時(shí),Redmi給出了官方承諾,K60至尊重大更新首批升級(jí),會(huì)首批推送MIUI 15。也就是說雖然
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時(shí)候了!學(xué)弟,最近學(xué)習(xí)的怎么樣啊 了不起學(xué)弟:最近學(xué)習(xí)的還不錯(cuò),每天都在學(xué)習(xí),每天都在進(jìn)步! 了不起:那你最近學(xué)習(xí)的什么呢? 了不起學(xué)弟:最近在學(xué)習(xí)C
  • 破圈是B站頭上的緊箍咒

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準(zhǔn)追劇女孩們的古偶劇集,2021年有優(yōu)酷的《山河令》,2022年有愛奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • 自律,給不了Keep自由!

    來源 | 互聯(lián)網(wǎng)品牌官作者 | 李大為編排 | 又耳 審核 | 谷曉輝自律能不能給用戶自由暫時(shí)不好說,但大概率不能給Keep自由。近日,全球最大的在線健身平臺(tái)Keep正式登陸港交所,努力
  • 華為HarmonyOS 4升級(jí)計(jì)劃公布:首批34款機(jī)型今日開啟公測(cè)

    8月4日消息,今天下午華為正式發(fā)布了HarmonyOS 4系統(tǒng),在更流暢的前提下,還帶來了不少新功能,UI設(shè)計(jì)也有變化,會(huì)讓手機(jī)煥然一新。華為宣布,首批機(jī)型將會(huì)在
  • 華為將推出盤古數(shù)字人大模型 可幫助用戶12小時(shí)完成數(shù)字人生成

    在今日舉行的2023年華為云數(shù)字文娛AI創(chuàng)新峰會(huì)上,華為云全球Marketing與銷售服務(wù)總裁石冀琳表示,華為云將在后續(xù)推出盤古數(shù)字人大模型,可幫助用戶12小
  • 榮耀Magicbook V 14 2021曙光藍(lán)版本正式開售,擁有觸摸屏

    榮耀 Magicbook V 14 2021 曙光藍(lán)版本正式開售,搭載 i7-11390H 處理器與 MX450 顯卡,配備 16GB 內(nèi)存與 512GB SSD,重 1.48kg,厚 14.5mm,具有 1.5mm 鍵盤鍵程、
  • 聯(lián)想的ThinkBook Plus下一版曝光,鍵盤旁邊塞個(gè)平板

    ThinkBook Plus 是聯(lián)想的一個(gè)特殊筆記本類別,它在封面放入了一塊墨水屏,也給人留下了較為深刻的印象。據(jù)有人爆料,聯(lián)想的下一款 ThinkBook Plus 可能更特殊,它
  • 2022爆款:ROG魔霸6 冰川散熱系統(tǒng)持續(xù)護(hù)航

    喜逢開學(xué)季,各大商家開始推出自己的新產(chǎn)品,進(jìn)行打折促銷活動(dòng)。對(duì)于忠實(shí)的端游愛好者來說,能夠擁有一款夢(mèng)寐以求的筆記本電腦是一件十分開心的事。但是現(xiàn)在的
Top 主站蜘蛛池模板: 玛曲县| 开远市| 远安县| 新泰市| 壤塘县| 聊城市| 乌拉特前旗| 六枝特区| 盈江县| 霍州市| 迭部县| 时尚| 漳州市| 深水埗区| 林口县| 比如县| 东丰县| 亚东县| 察哈| 永吉县| 闵行区| 进贤县| 甘泉县| 贵阳市| 教育| 楚雄市| 东阳市| 丰县| 藁城市| 习水县| 响水县| 余姚市| 太白县| 定陶县| 永济市| 昂仁县| 左云县| 平原县| 攀枝花市| 青田县| 丰顺县|