Подтвердить что ты не робот

Python: удалить непустой каталог

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

В каталоге могут быть вложенные подкаталоги на много уровней.

4b9b3361

Ответ 1

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

import shutil

shutil.rmtree(path)

Подробнее о том, как обрабатывать и/или игнорировать ошибки, см. документацию.

Ответ 2

Стандартная библиотека включает 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)>.

Ответ 3

Вы хотите shutil.rmtree

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

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