Ошибка в выводе результатов рекурсивной функции (Обход всех подкаталогов и файлов в каталоге - Python)
Подскажите пожалуйста! Необходимо написать функцию, которая получает на вход путь до каталога (причем, это может быть и корень диска) и выводит количество файлов и подкаталогов в нём. Также необходимо дополнительно вывести размер каталога в Кб.
Код программы:
import os
def catalog_search(catalog, dirs_catalog=0, files_count=0, file_sum=0):
"""Выводит кол-во подкаталогов, файлов и размер каталога (Кб)"""
for catalog_element in os.listdir(catalog):
if os.path.isdir(catalog + "\\" + catalog_element):
dirs_catalog += 1
catalog_search(catalog + "\\" + catalog_element)
elif os.path.isfile(catalog + "\\" + catalog_element):
files_count += 1
file_stat = os.stat(catalog + "\\" + catalog_element)
file_sum += file_stat.st_size
return dirs_catalog, files_count, file_sum
path_catalog = "C:\\Users\\Example_catalog\\Module14"
catalogs, files, files_size = catalog_search(path_catalog)
print("Размер каталога (в Кб):", files_size / 1024)
print("Количество подкаталогов:", catalogs)
print("Количество файлов:", files)
В примере path_catalog в каталоге Module14 имеется 6 папок, причем каждая папка имеет минимум по 3 файла.
У меня ошибка в выводе количества файлов, так как программа выводит количество файлов только в каталоге, но при этом не считает файлы подкаталогов и не добавляет их в общее количество. В чем причина такого вывода до сих пор не могу понять.
Источник: Stack Overflow на русском