2013-08-06 7 views
11
import ConfigParser 
config = ConfigParser.ConfigParser() 
config.read('test.ini') 

Ecco come si legge un file di configurazione in Python. Ma cosa succede se il 'test.ini' non esiste? Perché questo metodo non genera eccezioni?python Il file di lettura ConfigParser non esiste

Come faccio a generare un'eccezione se il file non esiste?

risposta

10

Dal docs:

Se nessuno dei file denominati esiste, l'istanza sarà ConfigParser contenere un insieme di dati vuoto.

Se si vuole generare un errore nel caso in cui uno qualsiasi dei file non viene trovato, allora si può provare:

files = ['test1.ini', 'test2.ini'] 
dataset = config.read(files) 
if len(dataset) != len(files): 
    raise ValueError, "Failed to open/find all files" 
+0

Perché 'config.read (' Test.ini ')' Non che dovrebbe essere 'config.read (file)'? – user3817250

12

Si potrebbe anche aprire in modo esplicito come un file.

try: 
    with open('test.ini') as f: 
     config.readfp(f) 
except IOError: 
    raise MyError() 

EDIT: aggiunto un mancante '

+2

Questo ha funzionato. A proposito: 'readfp()' ora è obsoleto (almeno in Python 3). Ora è chiamato 'read_file()'. –