Вычисление общего количества строк всех .py файлов в директории
Нужно реализовать функцию-генератор, которая берёт все питоновские файлы в директории и вычисляет общее количество строк кода, игнорируя пустые строки и строчки комментариев.
Набросал код, но не работает игнорирование пустых строк и комментариев.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
import os from collections.abc import Iterable def gen_files_dir(path: str, depth=1) -> Iterable[str]: """Рекурсивно перебираем файлы и каталоги до определенной глубины""" depth -= 1 with os.scandir(path) as p: for entry in p: yield entry.path if entry.is_dir() and depth > 0: yield from gen_files_dir(entry.path, depth) if __name__ == '__main__': directory = 'C:\\Python\\python39\\lib' # Тут копаемся в директории files = list(gen_files_dir(directory)) line_count = 0 for file_dir in files: if not os.path.isfile(file_dir): continue # Откидываем файлы без расширения .py skip_File = True for ending in '.py': if file_dir.endswith(ending): skip_File = False if not skip_File: try: file = open(file_dir, "r") local_count = 0 for line in file: if line != "\n" or not line.startswith('"') or not line.startswith( "#"): # Откидываем пустые строки и комментарии print(line) local_count += 1 print('<> - <> ст'.format(file_dir, local_count)) line_count += local_count file.close() except: continue print("=====================================") print("Всего строк - ", line_count)