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:
dbm
.
db
.
dbm
.
dbm
.