Как удалить все содержимое каталога?

есть скрипт который должен удалить все содержимое в указанном каталоге

os.remove("".join(glob.glob("/opt/lammp/htdocs/site/*")))

если в каталоге site только файлы то все работает, если имеется хоть один каталог, то ошибка. Как удалять все содержимое в указанном каталоге?


Ответы (1 шт):

Автор решения: gil9red

Для удаления папки и вложенных в нее файлов и папок есть функция shutil.rmtree

Пример:

import shutil

shutil.rmtree('<путь к папке>')

Если есть необходимость оставить пустую папку, то после shutil.rmtree можно создать папку, но это костыль. Тогда, другой вариант перебор содержимого и использование разных методов для удаления файлов и папок

Удаление содержимого папки без удаления папки (используя shutil и pathlib):

from pathlib import Path
from shutil import rmtree


for path in Path('<путь к папке>').glob('*'):
    if path.is_dir():
        rmtree(path)
    else:
        path.unlink()

Вместо метода glob можно использовать iterdir:

for path in Path('<путь к папке>').iterdir():
→ Ссылка