发布时间:2018-03-02 14:28:27编辑:admin阅读(3460)
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模块
47605
45985
36909
34469
29080
25713
24566
19714
19245
17756
5564°
6155°
5691°
5737°
6705°
5483°
5484°
5988°
5965°
7295°