С рекурсией – вызовом функцией самой себя мы уже дело имели, считая факториал. Рассмотрим ещё один пример, который без рекурсии реализовать практически невозможно. Выведем на экран структуру папок на диске. Алгоритм простой – начиная от заданного пути, найдём все папки и повторим это действие для каждой из найденных папок. Для поиска папок и файлов будем использовать функцию scandir() из пакета os. Итак, для начала импортируем этот модуль в приложение: import os Для рекурсии нам потребуется определить функцию, которая будет вызывать сама себя. Назовём её getdirlist – получение списка папок. Её код простой: def getdirlist(path):
dirs = os.scandir(path)
for dir in dirs:
if not dir.name.startswith('.') and dir.is_dir():
print(indent + dir.name)
getdirlist(path + dir.name + '\\',) Эта функция будет работать и делать то, что надо, но попробуем её улучшить. Первое. Все папки будут выводиться по одной на строку, при этом их структура будет не ви