您好,登錄后才能下訂單哦!
本文實例講述了Python數據持久化shelve模塊用法。分享給大家供大家參考,具體如下:
在python3中我們使用json或者pickle持久化數據,能dump多次,但只能load一次,因為先前的數據已經被后面dump的數據覆蓋掉了。如果我們想要實現dump和load多次,可以使用shelve模塊。shelve模塊可以持久化所有pickle所支持的數據類型。
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 # 持久化時間類型
執(zhí)行代碼后會生成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)
我們使用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。
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python函數使用技巧總結》、《Python面向對象程序設計入門與進階教程》、《Python數據結構與算法教程》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設計有所幫助。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。