Elimina file e directory utilizzando Python
-
Elimina file utilizzando il modulo
osin Python -
Elimina file utilizzando il modulo
pathlibin Python - Elimina file con corrispondenza pattern in Python
-
Elimina le directory usando il modulo
osdi Python -
Elimina le directory usando il modulo
pathlibdi 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
- Come scrivere riga per riga in un file utilizzando Python
