Python: Деревья
Теория: Агрегация 2
Полный доступ к материалам
В этом уроке мы попрактикуемся еще с одним вариантом агрегации данных на файловых системах.
Условие задачи
Напишем функцию, которая принимает на вход директорию и возвращает:
- Список директорий первого уровня вложенности
- Количество файлов внутри каждой из них, включая все поддиректории
Так это выглядит в коде:
Реализация
Внутри себя эта задача распадается на две:
- Подсчет количества файлов внутри директории
- Вызов функции подсчета файлов на каждой из поддиректорий
Начнем с подсчета количества файлов. Это классическая задача на агрегацию:
Следующий шаг — извлечь всех потомков из исходного узла и к каждому из них применить подсчет:
В коде выше мы обратились к потомкам напрямую. Сначала мы отфильтровали их, а затем выполнили отображение на необходимый массив, содержащий для каждой директории имя и количество файлов в нем.


