python3 shelve模塊的詳解
一、簡介
在python3中我們使用json或者pickle持久化數據,能dump多次,但只能load一次,因為先前的數據已經被后面dump的數據覆蓋掉了。如果我們想要實現dump和load多次,可以使用shelve模塊。shelve模塊可以持久化所有pickle所支持的數據類型。
二、持久化數據
1、數據持久化
import shelve import datetime info = {'name': 'bigberg', 'age': 22} name = ['Apoll', 'Zous', 'Luna'] t = datetime.datetime.now() with shelve.open('shelve.txt') as f: f['name'] = name # 持久化列表 f['info'] = info # 持久化字典 f['time'] = t # 持久化時間類型
執行代碼后會生成3個文件:shelve.txt.bak、shelve.txt.dat、shelve.txt.dir。
shelve.txt.bak 的內容
'info', (512, 45) 'name', (0, 42) 'time', (1024, 44)
shelve.txt.dat
?]q (X ApollqX ZousqX Lunaqe. ?}q (X ageqKX nameqX bigbergqu. ?cdatetime datetime q C ?" 2?q?qRq.
shelve.txt.dir 的內容
'info', (512, 45) 'name', (0, 42) 'time', (1024, 44)
2、數據讀取
我們使用get來獲取數據
import shelve with shelve.open('shelve.txt') as f: n = f.get('name') i = f.get('info') now = f.get('time') print(n) print(i) print(now) #輸出 ['Apoll', 'Zous', 'Luna'] {'age': 22, 'name': 'bigberg'} 2017-07-08 11:07:34.865022
1、shelve模塊是一個簡單的key,value將內存數據通過文件持久化的模塊。
2、shelve模塊可以持久化任何pickle可支持的python數據格式。
3、shelve就是pickle模塊的一個封裝。
4、shelve模塊是可以多次dump和load。
?感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
