shelve模块

shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写。

都是以键值对的形式保存数据,不过在shelve模块中,key必须为字符串,而值可以是python所支持的数据类型。

感觉比pickle用起来更简单一些,它也是一个用来持久化Python对象的简单工具。当我们写程序的时候如果不想用关系数据库那么重量级的东东去存储 数据,不妨可以试试用shelve。shelf也是用key来访问的,使用起来和字典类似。shelve其实用anydbm去创建DB并且管理持久化对象 的。

 

import shelve
 
d = shelve.open('shelve_test') #打开一个文件
 
class Test(object):
    def __init__(self,n):
        self.n = n
 
 
t = Test(123) 
t2 = Test(123334)
 
name = ["alex","rain","test"]
d["test"] = name #持久化列表
d["t1"] = t      #持久化类
d["t2"] = t2
 
d.close()

 

import shelve
 
s = shelve.open('test_shelf.db')
try:
   s['key1'] = { 'int': 10, 'float':9.5, 'string':'Sample data' }
finally:
   s.close()

如果想要再次访问这个shelf,只需要再次shelve.open()就可以了,然后我们可以像使用字典一样来使用这个shelf

import shelve
 
s = shelve.open('test_shelf.db')
try:
   existing = s['key1']
finally:
   s.close()

print(existing)

 

posted @ 2017-02-25 10:43  Vincen_shen  阅读(270)  评论(0)    收藏  举报