发布时间:2018-03-02 14:28:27编辑:admin阅读(4260)
shelve模块是一个简单的k-value数据,将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式。
shelve类似于一个存储持久化对象的持久化字典,即字典文件。
使用方法也类似于字典。
保存对象至shelve文件中:
#!/usr/bin/env python
# coding: utf-8
__author__ = 'www.py3study.com'
import shelve,datetime
# 打开一个文件
d = shelve.open('shelve_test')
#基本信息
info = {
'age':22,
"job":"it"
}
#姓名
name = ["jack", "rain", "test"]
#持久化列表,字典,创建时间
d["name"] = name
d["info"] = info
d["create_time"] = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
d.close()执行程序,发现当前目录多了3个文件
shelve_test.bak、shelve_test.dat、shelve_test.dir
从文件中读取对象:
#!/usr/bin/env python
# coding: utf-8
__author__ = 'www.py3study.com'
import shelve
# 打开一个文件
d = shelve.open('shelve_test')
#读取所有数据
for i in d.items():
print(i)
print("-----------------------------")
#读取基本信息,姓名,时间
print(d.get("info"))
print(d.get("name"))
print(d.get("create_time"))
d.close()执行输出
('name', ['jack', 'rain', 'test'])
('info', {'age': 22, 'job': 'it'})
('date', '2018-03-02 14:11:16')
('create_time', '2018-03-02 14:21:37')
-----------------------------
{'age': 22, 'job': 'it'}
['jack', 'rain', 'test']
2018-03-02 14:21:37
更新文件中的数据:
import shelve
# 打开一个文件
d = shelve.open('shelve_test')
#从文件中读取之前存储的对象
info_new = d.get("info")
#直接对对象进行修改
info_new['age'] = 20
#重新存储至字典文件对象中
d['info'] = info_new
#打印结果
print(d['info'])
d.close()执行输出
{'age': 20, 'job': 'it'}
上一篇: python shutil模块
下一篇: python xml模块
51211
50629
41249
38063
32527
29431
28297
23154
23112
21452
1504°
2221°
1842°
1783°
2080°
1839°
2511°
4226°
4085°
2921°