shelve -- Python library reference



Next: copy Prev: pickle Up: Python Services Top: Top

3.5. Standard Module shelve

A ``shelf'' is a persistent, dictionary-like object. The difference with ``dbm'' databases is that the values (not the keys!) in a shelf can be essentially arbitrary Python objects --- anything that the pickle module can handle. This includes most class instances, recursive data types, and objects containing lots of shared sub-objects. The keys are ordinary strings.

To summarize the interface (key is a string, data is an arbitrary object):

import shelve

d = shelve.open(filename) # open, with (g)dbm filename -- no suffix

d[key] = data # store data at key (overwrites old data if

# using an existing key)

data = d[key] # retrieve data at key (raise KeyError if no

# such key)

del d[key] # delete data stored at key (raises KeyError

# if no such key)

flag = d.has_key(key) # true if the key exists

list = d.keys() # a list of all existing keys (slow!)

d.close() # close it

Restrictions:



Next: copy Prev: pickle Up: Python Services Top: Top