Disponibilità: Unix.
Questo modulo è piuttosto simile a dbm,
ma utilizza al suo posto gdbm
per fornire qualche funzionalità aggiuntiva.
Notate che i formati dei file creati da gdbm
e dbm
sono
incompatibili.
Il modulo gdbm fornisce un'interfaccia per la libreria GNU
DBM. Gli oggetti gdbm
si comportano come mappe (dizionari),
tranne per il fatto che chiavi e valori sono sempre
stringhe. Stampando un oggetto gdbm
non vengono stampati chiavi
e valori, ed i metodi items() e values() non vengono
supportati.
Il modulo definisce le seguenti costanti e funzioni:
gdbm
, come un errore di I/O.
In caso di errori generali di mappatura, come lo specificare un chiave non corretta,
viene sollevata un'eccezione KeyError.
filename, [flag, [mode]]) |
gdbm
e restituisce un oggetto gdbm
.
L'argomento filename è il nome del file del database.
L'argomento facoltativo flag può essere
'r'
(per aprire un database esistente in sola lettura -- predefinito),
'w'
(per aprire un database esistente in lettura e scrittura),
'c'
(per creare un database se non esiste) o
'n'
(che crea sempre un nuovo database vuoto).
I seguenti caratteri addizionali possono essere inseriti a seguito dell'opzione per controllare in che modo il database venga aperto:
'f'
-- Apre il database in modalità veloce. La scrittura
nel database non sarà sincronizzata.
's'
-- Modalità sincronizzata. Questo provocherà
l'immediata scrittura sul file delle modifiche al database.
'u'
-- Non blocca il database.
Non tutte le opzioni sono valide per tutte le versioni di gdbm
.
La costante di modulo open_flags
è una stringa contenente i caratteri delle
opzioni supportate. Viene sollevata l'eccezione error nel caso
venga specificata un'opzione non valida.
L'argomento facoltativo mode rappresenta la modalità Unix del
file, usata solamente quando il database deve essere creato. Il
valore predefinito in ottale è 0666
.
In aggiunta ai soliti metodi tipici di un dizionario, gli oggetti gdbm
possiedono
i seguenti metodi:
) |
gdbm
, e non verranno
ordinati secondo il valore delle chiavi. Questo metodo restituisce la
chiave di partenza.
key) |
db
, senza dover
creare una lista in memoria che le contenga tutte:
k = db.firstkey() while k != None: print k k = db.nextkey(k)
) |
gdbm
, questa procedura riorganizzerà il
database. gdbm
non diminuirà la dimensione di un file
database, se non tramite l'utilizzo di questa riorganizzazione;
altrimenti, lo spazio cancellato dal file verrà preso e riutilizzato
al momento dell'aggiunta di nuove coppie (chiave,valore).
) |
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.