5.16 ConfigParser -- Analizzatore dei file di configurazione

Questo modulo definisce la classe ConfigParser. La classe ConfigParser implementa un semplice linguaggio di analisi dei file di configurazione il quale presenta una struttura simile a quella che trovereste nei file INI di Microsoft Windows. Potete utilizzare questa classe per scrivere programmi facilmente personalizzabili dall'utente finale.

Questa libreria non interpreta o scrive i prefissi dei tipi-valori usati nella sintassi INI della versione estesa del Windows Registry. .

Il file di configurazione è composto da sezioni, ciascuna introdotta da una intestazione "[sezione]" seguita da dichiarazioni "nome: valore", con prolungamenti nello stile di RFC 822; viene accettato anche "nome=valore". Notate che gli spazi vuoti iniziali dei valori vengono rimossi. I valori facoltativi possono contenere stringhe di formato che si riferiscono ad altri valori nella stessa sezione o a valori in una sezione speciale DEFAULT. I valori predefiniti possono essere forniti nell'inizializzazione e nel ripristino. Le righe che iniziano con "#" o con ";" vengono ignorate e possono essere utilizzate per realizzare commenti.

Per esempio:

[My Section]
foodir: %(dir)s/whatever
dir=frob

risolverebbe "%(dir)s" nel valore di "dir" ("frob" in questo caso). Tutte le espansioni dei riferimenti vengono eseguite solo su richiesta.

I valori predefiniti possono essere specificati nel costruttore di ConfigParser sotto forma di dizionario. Altri valori predefiniti possono venir passati al metodo get() che sovrascriverà tutti gli altri.

class RawConfigParser( [defaults])
L'oggetto di configurazione di base. Quando viene passato l'argomento defaults, esso viene inizializzato nel dizionario degli valori predefiniti intrinseci. Questa classe non supporta la magica funzionalità di interpolazione. Nuovo nella versione 2.3.

class ConfigParser( [defaults])
Classe derivata da RawConfigParser che implementa la funzionalità di interpolazione magica ed aggiunge argomenti facoltativi ai metodi get() ed items(). I valori in defaults devono essere adatti all'interpolazione della stringa "%()s". Notate che __name__ è un elemento predefinito intrinseco; il suo valore è il nome della sezione e sovrascriverà ogni valore fornito in defaults.

Tutti i nomi di opzione usati nell'interpolazioni passeranno attraverso il metodo optionxform() allo stesso modo di ogni altro riferimento ad un nome di opzione. Per esempio, usando l'implementazione predefinita di optionxform() (che converte i nomi di opzione in minuscolo), il valori "foo %(bar)s" e "foo %(BAR)s" sono da considerarsi equivalenti.

class SafeConfigParser( [defaults])
Classe derivata da ConfigParser che implementa una variante più sensata della funzionalità di interpolazione magica. Questa implementazione è anche più prevedibile. Le nuove applicazioni dovrebbero preferire questa versione se non hanno la necessità di essere compatibili con vecchie versioni di Python. Nuovo nella versione 2.3.

exception NoSectionError
Eccezione sollevata quando non viene trovata una sezione specifica.

exception DuplicateSectionError
Eccezione sollevata se add_section() viene chiamato con il nome di una sezione già presente.

exception NoOptionError
Eccezione sollevata quando non viene trovata un'opzione specifica nella sezione specificata.

exception InterpolationError
Classe base per le eccezioni sollevate quando intervengono dei problemi durante l'interpolazione delle stringhe.

exception InterpolationDepthError
Eccezione sollevata quando l'interpolazione di una stringa non può essere completata perché il numero delle iterazioni eccede MAX_INTERPOLATION_DEPTH. Classe derivata da InterpolationError.

exception InterpolationMissingOptionError
Eccezione sollevata quando un'opzione referenziata da un valore non esiste. Classe derivata da InterpolationError. Nuovo nella versione 2.3.

exception InterpolationSyntaxError
Eccezione sollevata quando il testo sorgente nel quale vengono fatte le sostituzioni non è conforme alla sintassi richiesta. Classe derivata da InterpolationError. Nuovo nella versione 2.3.

exception MissingSectionHeaderError
Eccezione sollevata quando si tenta di analizzare un file che non ha intestazioni di sezione.

exception ParsingError
Eccezione sollevata quando avvengono degli errori nell'analisi di un file.

MAX_INTERPOLATION_DEPTH
La massima profondità di interpolazione ricorsiva del metodo get() quando il parametro raw è falso. É significativo solo per la classe ConfigParser.

Vedete anche:

Modulo shlex:
Supporto alla creazione di mini-linguaggi simili alla shell di Unix che possono essere usati come formato alternativo nei file di configurazione delle applicazioni.



Subsections
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.