3.17.2 Esempio

Per ricapitolare l'interfaccia (key è una stringa, data è un oggetto arbritrario):

import shelve

d = shelve.open(filename) # open -- file che può prendere un suffisso 
                          # aggiunto da una libreria di basso-livello

d[key] = data   # immagazzina i dati della chiave (sovrascrive i
                # vecchi dati se sta usando una chiave esistente)
data = d[key]   # recupera una COPIA dei dati dalla chiave
                # (solleva KeyError se la chiave non corrisponde)
del d[key]      # cancella i dati immagazzinati nella chiave 
                # (solleva KeyError se la chiave non corrisponde)
flag = d.has_key(key)   # vero se la chiave esiste
list = d.keys() # una lista di tutte le chiavi esistenti (lento!)

# visto che d è stata aperta SENZA writeback=True, si faccia attenzione che:
d['xx'] = range(4)  # questa lavora come sperato, ma ...
d['xx'].append(5)   # *questa no!* -- d['xx'] è ANCORA range(4)!!!
# avendo aperto d senza writeback=True, avete bisogno di scrivere accuratamente:
temp = d['xx']      # estrae la copia
temp.append(5)      # modifica la copia
d['xx'] = temp      # memorizza la copia, per renderla persistente
# oppure, d=shelve.open(nomefile,writeback=True) potrebbe lasciarvi
# scrivere d['xx'].append(5) e farla funzionare come deisderato, MA
# potrebbe anche consumare una maggiore quantità di memoria, e rendere 
# l'operazione d.close() più lenta. 


d.close()       # chiude d

Vedete anche:

Modulo anydbm:
Interfaccia generica allo stile dei database dbm.
Modulo bsddb:
Interfaccia database BSD db.
Modulo dbhash:
Layer sottile attorno al bsddb che fornisce una funzione open come i moduli degli altri database.
Modulo dbm:
Interfaccia a database standard Unix.
Modulo dumbdbm:
Implementazione portabile dell'interfaccia dbm.
Modulo gdbm:
Interfaccia database GNU, basata sull'interfaccia dbm.
Modulo pickle:
Serializzazione di oggetti usata da shelve.
Modulo cPickle:
Versione ad alte prestazioni di pickle.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.