import os  # библиотека для работы с файловой системой
import shutil  # другая библиотека для работы с файловой системой

from PIL import Image  # библиотека для работы с изображениями

if __name__ == "__main__":
    # список плохих директорий (товаров)
    list_bad = []
    # проход по директории dataset, содержащей
    # поддиректории с товарами
    for cpath, dirs, files in os.walk(os.path.join(os.getcwd(), 'dataset')):
        # если в этой директории нет других директорий
        # (то есть это директория товара)
        # и в ней меньше 2 изображений,
        # то она заранее добавляется в список плохих
        if len(dirs) == 0 and len(files) < 3:
            list_bad.append(cpath)
        # проход по всем файлам товара
        for file in files:
            # если это файл с расширением .txt
            # (единственный такой файл - это props.txt),
            # то нам нет нужды его обрабатывать
            if file.endswith('.txt'):
                continue
            # оборачивание в try-except блок
            # для обработки ошибок, связанных с
            # открытием изображения
            try:
                # попытка открыть изображение
                img = Image.open(os.path.join(cpath, file))
                # и убедиться, что данные не повреждены
                img.verify()
            except:
                # при ошибке текщуая директория
                # добавляется в список плохих
                # и происходит выход из цикла по файлам
                list_bad.append(cpath)
                break
    # рекурсивное удаление плохих товаров
    # вместе со всеми файлами внутри
    for path in list_bad:
        shutil.rmtree(path)
