Python Glossary English

все 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Сообщить о неточности