Ce face shutil.rmtree()
rmtree() șterge definitiv directorul și toate fișierele și subdirectoarele din el, fără să treacă prin coșul de gunoi. Verifică de două ori calea înainte de a o folosi.
Cu ignore_errors=True erorile sunt ignorate. Cu onexc (3.12+) dai o funcție care tratează fiecare eroare (de exemplu un fișier doar-citire pe Windows); vechiul parametru onerror este învechit.
Parametri
| Parametru | Descriere |
|---|---|
cale |
Directorul de șters. |
ignore_errors |
Ignoră erorile. |
onexc |
Funcția apelată la eroare: (functie, cale, exceptie). |
Ce returnează
None.
Exemple
Exemplul 1: Ștergerea unui director temporar
import shutil
from pathlib import Path
Path("temp/a/b").mkdir(parents=True)
Path("temp/a/b/f.txt").write_text("x")
shutil.rmtree("temp")
print(Path("temp").exists())
shutil.rmtree("nu_exista", ignore_errors=True)
def raporteaza(functie, cale, exceptie):
print("Nu am putut șterge:", cale, type(exceptie).__name__)
shutil.rmtree("lipsa", onexc=raporteaza)
Rezultat
False
Nu am putut șterge: lipsa FileNotFoundError
Greșeli frecvente
- Construiești calea din variabile care pot fi goale (
rmtree(baza + "/" + nume)) și ștergi alt director decât voiai. Verifică valorile și folosește căi absolute.
Comenzi înrudite
Path.mkdir(), rmdir(), touch() și unlink(): Creează și șterge directoare și fișiere goale.os.remove(), unlink(), rmdir() și removedirs(): Șterge fișiere și directoare goale.shutil.copytree() și shutil.ignore_patterns(): Copiază un director întreg, cu toate subdirectoarele, opțional ignorând anumite fișiere.