Python: come verificare se un file esiste senza eccezioni

di Lorenzo Neri
0 commento 139 visualizzazioni

In Python esiste una soluzione che permette di verificare se un file esiste senza generare eccezioni e in questo articolo scopriremo come fare senza usare il “try”!

Come visto nell’articolo legato alle tecniche di debug, se utilizziamo le eccezioni beh… In Python così come in altri linguaggi di programmazione se il file che stai cercando non esiste verrà generata un’eccezione.

Prima di avventurarti nella lettura di questo articolo, è giusto chiarire una cosa.

Se è tua intenzione eseguire operazioni di lettura e scrittura sul file in questione è molto più saggio usare la gestione delle eccezioni.

Diversamente, vediamo come fare.

Come funziona “is_file”

Questo metodo messo a disposizione dal modulo “pathlib” restituisce “true” se il file con il filename specificato esiste, diversamente restituisce “false”:

from pathlib import Path
fileDaVerificare=Path("percorso/del/file")
if fileDaVerificare.is_file():
   print("Il file esiste")

Niente di trascendentale, niente di strano: questo è il primo metodo per verificare se un file esiste senza generare eccezioni!

Per completezza, voglio mostrarti un altro metodo a riguardo che ti permette di verificare se una cartella esiste oppure no.

from pathlib import Path
cartellaDaVerificare=Path("percorso/della/cartella")
if cartellaDaVerificare.is_dir():
   print("La cartella esiste")

Ora che abbiamo capito come funzionano questi due metodi, è giusto spiegarti un ultimo metodo supremo: a prescindere dal filename o dal percorso specificato, verifica se esiste la cartella o il file espresso nel path.

In altre parole, è un metodo universale che racchiude entrambi i metodi visti prima:

if fileOCartellDaVerificare.exists():
   print("Il file o cartella che mi hai specificato nel percorso esiste")

Quindi, il metodo “exists” del modulo “pathlib” permette di verificare se un file o una cartella esistono senza generare alcuna eccezione. L’unica cosa che ti verrà “tornata” sarà “false” oppure “true” a seconda dell’esistenza o meno. Ma non abbiamo finito purtroppo!

Pathlib e versioni di Python: quale stai usando?

Il modulo “pathlib” offre questo approccio orientato ad oggetti dalla versione di Python 3.4, ma fortunatamente è stato esteso anche alla versione 2.7.

Tuttavia, ti ricordo che ormai la versione 2 di Python sta diventando obsoleta, perciò è meglio aggiornarsi prima di tutto!

Potrebbero interessarti

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più