Ti sei sempre chiesto come eliminare un file oppure una cartella in Python? In questo articolo ti spiego come fare in pochi passi.
Ciao mi chiamo Lorenzo Neri e sono un informatico: realizzo contenuti per aiutare le persone a padroneggiare l’arte del nuovo millennio, ovvero l’informatica!
Il titolo e la frase introduttiva di questo articolo non lasciano niente di sottinteso, perciò: una cosa per volta vediamo come gestire l’eliminazione dei file e delle cartelle nei tuoi script Python.
Python: eliminare un file, come si fa?
Partiamo dai file: hai bisogno del modulo “os”, per la precisione della funzione “remove”.
Questa funzione, permette di eliminare un file e trovi maggiori dettagli qui, quindi:
import os
os.remove("nome_del_file.estensione")
Semplice, ma ti vorrei dare anche un avvertimento. Se il file che hai indicato nell’argomento della funzione non esiste, verrà lanciata un’eccezione: la “FileNotFoundError” per essere precisi.
Ci sarebbe anche un altro modo per eliminare un file in Python: tramite il pacchetto “pathlib”.
Pathlib è un package Python che fa al caso tuo, ma solo per versioni Python dalla 3.4 in poi.
In questo caso, ti basta procedere come segue:
file_to_rem = pathlib.Path("nome_del_file.estensione")
file_to_rem.unlink()
Perché spiegartelo? Beh perchè la funzione “unlink” permette di passare anche un parametro che si chiama “missing_ok“.
Se impostato a “False“ e il file non esiste, non viene sollevata alcuna eccezione.
Ma vediamo di completare il nostro percorso: come eliminare un file l’abbiamo capito vediamo come eliminare una cartella.
Eliminiamo le cartelle
Di per sé non devi inventare nulla: partiamo sempre dal modulo “os”.
os.rmdir("percorso/della/cartella/da/eliminare")
Ma devo essere sincero con te.
In ambiente Linux/Mac questa funzione funziona solo se la cartella in questione è vuota: su Windows elimina anche il suo contenuto.
Come eliminare quindi una cartella NON vuota? Tramite shutil e la funzione “rmtree”:
shutil.rmtree("percorso/della/cartella/da/eliminare")
Semplice anche questo.
In tutto ciò, sia per eliminare un file, sia per eliminare una cartella ti capiterà sicuramente di dover gestire le eccezioni: te ne accorgerai!
Ma prima di salutarti, ti volevo dire che ancora una volta anche “pathlib” permette di eliminare una cartella in Python!
Ti suggerisco di buttare un occhio qui 😉