Elimina file e directory utilizzando Python
-
Elimina file utilizzando il modulo
os
in Python -
Elimina file utilizzando il modulo
pathlib
in Python - Elimina file con corrispondenza pattern in Python
-
Elimina le directory usando il modulo
os
di Python -
Elimina le directory usando il modulo
pathlib
di Python -
Elimina le directory non vuote usando il metodo Python
shutil.rmtree
Questo articolo introduce come eliminare file e directory con pacchetti integrati in Python come os
, pathlib
e shutil
.
Elimina file utilizzando il modulo os
in Python
os
è un pacchetto integrato disponibile sia in Python 2 che in Python 3.
Possiamo usare remove()
e unlink()
dal modulo os
per eliminare i file usando Python. Entrambe queste funzioni sono simili nell’azione. Entrambi prendono come argomento il percorso del file da eliminare.
import os
os.remove("test_dir/main.py")
Elimina il file denominato main.py
che si trova all’interno di test_dir
. Dato che qui stiamo usando il percorso relativo, test_dir
deve essere nella stessa cartella principale di quella del nostro programma Python. Possiamo anche usare il percorso del file assoluto.
import os
os.unlink("test_dir/main.py")
Elimina anche il file denominato main.py
che si trova all’interno di test_dir
.
Entrambe le funzioni possono eliminare solo file. Se diamo il percorso della directory da eliminare, otteniamo l’errore IsADirectoryError
.
Allo stesso modo, otteniamo FileNotFoundError
se il file non è presente nel percorso specificato.
Se non abbiamo il permesso di eliminare il file, otteniamo l’errore PermissionError
.
Per affrontare questi errori durante l’eliminazione del file, dovremmo utilizzare la gestione delle eccezioni.
import os
try:
os.remove("test_dir/main.py")
except OSError as e:
print(f"Error:{ e.strerror}")
Produzione:
Error:No such file or directory
Se non esiste un file di questo tipo, viene stampato un errore nell’output piuttosto che l’intero programma da arrestare in modo anomalo.
Elimina file utilizzando il modulo pathlib
in Python
Per rimuovere file usando il modulo pathlib
, creiamo prima un oggetto Path
definito nel modulo pathlib
. Quindi usiamo il metodo unlink()
per eliminare il file.
from pathlib import Path
filePath = Path("test_dir/main.py")
try:
filePath.unlink()
except OSError as e:
print(f"Error:{ e.strerror}")
Qui, istanziamo l’oggetto filePath
dalla classe Path
con la posizione del file da eliminare.
Il modulo pathlib
è disponibile solo in Python 3.4 e versioni successive. Per Python 2 dobbiamo installare il modulo usando pip
.
Elimina file con corrispondenza pattern in Python
Possiamo usare il modulo glob
per abbinare i pattern nei file e dopo aver raccolto tutti i file che corrispondono al pattern, possiamo eliminarli tutti usando uno dei metodi sopra specificati.
import os
import glob
py_files = glob.glob("test_dir/*.py")
for py_file in py_files:
try:
os.remove(py_file)
except OSError as e:
print(f"Error:{ e.strerror}")
Questo cancella tutti i file nella directory test_dir
con estensione .py
.
Elimina le directory usando il modulo os
di Python
Per cancellare le directory usando Python, possiamo usare le directory os
, pathlib
e shutlib
. os
e pathlib
possono eliminare solo directory vuote mentre shutlib
può rimuovere anche directory non vuote.
import os
dirPath = "test_dir"
try:
os.rmdir(dirPath)
except OSError as e:
print(f"Error:{ e.strerror}")
Elimina la directory vuota test_dir
nella nostra directory di lavoro corrente.
Elimina le directory usando il modulo pathlib
di Python
Se la directory non è vuota, la directory non può essere rimossa usando questo metodo, otteniamo un output dal programma che dice Error: Directory not empty
.
Possiamo anche usare il modulo pathlib
per rimuovere directory non vuote.
from pathlib import Path
dirPath = Path("test_dir")
try:
dirPath.rmdir()
except OSError as e:
print(f"Error:{ e.strerror}")
Elimina anche la directory vuota test_dir
nella nostra directory di lavoro corrente.
Elimina le directory non vuote usando il metodo Python shutil.rmtree
Per eliminare directory non vuote usando Python, usiamo il metodo rmtree
dal modulo shutil
.
import shutil
dirPath = "test_dir"
try:
shutil.rmtree(dirPath)
except OSError as e:
print(f"Error:{ e.strerror}")
Elimina la directory test_dir
nella nostra directory di lavoro corrente e tutto il suo contenuto.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArticolo correlato - Python File
- Come ottenere tutti i file di una directory
- Come aggiungere testo ad un file in Python
- Come controllare se un file esiste in Python
- Come trovare file con una certa estensione solo in Python
- Leggi linee specifiche da un file in Python
- Apri un file zip senza estrarlo in Python