# encoding: utf-8
''' 以bsddb-cpickle为引擎, key-value的形式存储、检索数据
'''
import bsddb
import cPickle as pickle
class Storage:
def __init__(self, storagefile='storage.db'):
self.store = bsddb.hashopen(storagefile, 'c')
def __enter__(self):
return self
def __exit__(self, *args):
self.store.close()
def __getitem__(self, url):
content = self.store.get(url)
return None if not content else pickle.loads(content)
def __setitem__(self, url, content):
self.store[url] = pickle.dumps(content)
def keys(self):
return self.store.keys()
def values(self):
return self.store.values()
def items(self):
return self.store.items()
def tester():
kache = Storage()
with kache:
kache['a'] = 'tester'
kache['b'] = 1234
kache['c'] = [12.5, 'Tester', 32,]
for r in 'abcd':
print kache[r]
if __name__ == '__main__':
tester()
Storage.py
最新推荐文章于 2024-08-07 12:09:30 发布