Io uso una libreria di terze parti che va bene ma non gestisce file inesistenti come vorrei. Quando dandogli un file inesistente, invece di sollevare il buon vecchioCome si genera un errore FileNotFoundError correttamente?
FileNotFoundError: [Errno 2] No such file or directory: 'nothing.txt'
solleva qualche oscuro messaggio:
OSError: Syntax error in file None (line 1)
Non voglio per gestire il file mancante, non vogliono per catturare o gestire l'eccezione, non voglio sollevare un'eccezione personalizzata, né voglio I a open
il file, né a crearlo se non esiste.
Voglio solo verificarne l'esistenza (os.path.isfile(filename)
farà il trucco) e in caso contrario, basta sollevare un FileNotFoundError corretto.
ho provato questo:
#!/usr/bin/env python3
import os
if not os.path.isfile("nothing.txt"):
raise FileNotFoundError
ciò che solo uscite:
Traceback (most recent call last):
File "./test_script.py", line 6, in <module>
raise FileNotFoundError
FileNotFoundError
Questo è meglio di un "Errore di sintassi nel file di Nessuno", ma come è possibile aumentare la "vera" un'eccezione python con il messaggio corretto, senza doverla reimplementare?
Perfetto! Ero così difficile da trovare il modo giusto di scrivere questo. – zezollo
@zezollo: ho aggiornato la risposta; Ho trovato 'os.strerror()' adesso (ho * saputo * c'era una mappatura dal numero di errore al messaggio di stringa da qualche parte). –