Um einen Ordner zu löschen, auch wenn er möglicherweise nicht existiert (und damit die Race Condition in Charles Chow's Antwort ), aber immer noch Fehler haben, wenn andere Dinge schief gehen (z. B. Probleme mit der Berechtigung, Fehler beim Lesen der Festplatte, die Datei ist kein Verzeichnis)
Für Python 3.x:
import shutil
def ignore_absent_file(func, path, exc_inf):
except_instance = exc_inf[1]
if isinstance(except_instance, FileNotFoundError):
return
raise except_instance
shutil.rmtree(dir_to_delete, onerror=ignore_absent_file)
Der Code von Python 2.7 ist fast identisch:
import shutil
import errno
def ignore_absent_file(func, path, exc_inf):
except_instance = exc_inf[1]
if isinstance(except_instance, OSError) and \
except_instance.errno == errno.ENOENT:
return
raise except_instance
shutil.rmtree(dir_to_delete, onerror=ignore_absent_file)