python: удалить непустой каталог [duplicate]

Как удалить возможно непустой каталог в Python.

Каталог может иметь вложенные подкаталоги на нескольких уровнях.

12.10.2009 22:44:35
3 ОТВЕТА
РЕШЕНИЕ

Используйте shutil.rmtree:

import shutil

shutil.rmtree(path)

Смотрите документацию для получения подробной информации о том, как обрабатывать и / или игнорировать ошибки.

100
2.10.2016 15:11:25

Вы хотите shutil.rmtree

shutil.rmtree (путь [, ignore_errors [, onerror]])

Удалить все дерево каталогов; путь должен указывать на каталог (но не символическую ссылку на каталог). Если ignore_errors - true, ошибки, возникшие в результате неудачного удаления, будут игнорироваться; если false или пропущено, такие ошибки обрабатываются путем вызова обработчика, указанного в onerror, или, если он пропущен, они вызывают исключение.

11
12.10.2009 22:48:52

Для этого в стандартной библиотеке есть shutil.rmtree . По умолчанию,

shutil.rmtree(path)  # errors if dir not empty

даст OSError: [Errno 66] Directory not empty: <your/path>.

Вы можете удалить каталог и его содержимое в любом случае, игнорируя ошибку:

shutil.rmtree(role_fs_path, ignore_errors=True)

Вы можете выполнить более сложную обработку ошибок, также передав onerrror=<some function(function, path, excinfo)>.

62
23.02.2014 09:02:50
ignore_errors=Trueозначает, что это не удаляет каталог.
ostrokach 3.09.2015 17:50:36
ignore_errors = True был тикет
Marc Condon 9.09.2015 05:53:59
о нет, какое ужасное имя для параметра :(
IlliakaillI 10.03.2018 03:12:43