shutil.rmtree() în Python

Copiere și arhive (shutil) Python 3.0+ (onexc: 3.12+)

Șterge un director împreună cu tot conținutul lui.

Sintaxă
shutil.rmtree(cale, ignore_errors=False, *, onexc=None)

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