python shelve模块_python3 shelve模块的详解
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。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
本文標題: python3 shelve模塊的詳解
本文地址: http://www.cppcns.com/jiaoben/python/195937.html
總結
以上是生活随笔為你收集整理的python shelve模块_python3 shelve模块的详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python的类程序的结构_python
- 下一篇: centos7开放端口访问不了_基于Ti