Python資料持久化shelve模組用法分析

2022-09-27 08:33:10 字數 1305 閱讀 6710

在python3中我們使用json或者pickle持久化資料,能dump多次,但只能load一次,因為先前的資料已經被後面dump的資料覆蓋掉了。如果我們想要實現dump和load多次,可以使用shelve模組。shelve模組可以持久化所有pickle所支援的資料型別。

import shelve

import datetime

info =

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   lunaq程式設計客棧e.  �}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']

2017-07-08 11:07:34.865022

1、shelve模組是乙個簡單的key,value將記憶體資料通過檔案持久化的模組。

2、shelve模組可以持久化任何pickle可支援的python資料格式。

3、shelve就是pickle模組的乙個封裝。

4、shelve模組是可以多次dump和load。

python持久化快取 Python資料持久化儲存

1 pymongo的使用 前三步為建立物件 第一步建立連線物件 conn pymongo.mongoclient ip位址 27017 第二步建立庫 db conn 庫名 第三步建立表 myset db 集合名 第四步把資料插入資料庫 myset.inset.one usr bin python c...

資料持久化

資料持久化就是將記憶體中的資料模型轉換為儲存模型,以及將儲存模型轉換為記憶體中的資料模型的統稱.資料模型可以是任何資料結構或物件模型,儲存模型可以是關係模型 xml 二進位製流等。cmp和hibernate只是物件模型到關係模型之間轉換的不同實現。只不過物件模型和關係模型應用廣泛,所以就會誤認為資料...

資料持久化

首先是cocos2d x自己封閉的ccuserdefault跨平台的檔案儲存類,它是用的xml格式,具體操作非常類似於應用開發的ini檔案,可操作性不是很強,如果訪問比較複雜的資料,那就得自己動手去解析乙個字串,下面是示例 基本一看就懂 void userdefaulttest dotest els...