все Python 3shutilфункция
shutil.rmtree()
деревья каталогов
Удаляет каталог со всем содержимым, как rm -rf. Без корзины и без подтверждения — удалённое не вернуть.
Синтаксис
shutil.rmtree(path, ignore_errors=False, onerror=None, *, onexc=None, dir_fd=None)
os.rmdir удаляет только пустой каталог, rmtree — любой. На символическую ссылку на каталог rmtree отвечает OSError, а не удаляет то, на что она указывает, — защита от случайного удаления чужих данных. На Windows файлы «только для чтения» по умолчанию дают PermissionError; обработчик передаётся параметром onexc (с 3.12; прежний onerror устарел). ignore_errors=True глотает все ошибки молча, и недоудалённый каталог останется незамеченным.
Примеры
import os, shutil
os.makedirs('tmp/a/b')
open('tmp/a/b/f.txt', 'w').close()
try:
os.rmdir('tmp')
except OSError as e:
print(type(e).__name__) # → OSError — каталог не пуст
shutil.rmtree('tmp')
print(os.path.exists('tmp')) # → False
import os, shutil
os.mkdir('data')
os.symlink('data', 'link')
try:
shutil.rmtree('link')
except OSError as e:
print(type(e).__name__) # → OSError
print(os.path.isdir('data')) # → True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности