Что нужно сделать
Реализуйте функцию-генератор, которая берёт все питоновские файлы в директории и вычисляет количество строк в каждом файле, игнорируя пустые строки и строки комментариев. По итогу функция-генератор должна с помощью yield каждый раз возвращать количество строк в очередном файле.
Что оценивается
- Результат вычислений корректен.
- Input содержит корректные приглашения для ввода.
- Сообщения о процессе получения результата осмыслены и понятны для пользователя.
- Переменные, функции и собственные методы классов имеют значащие имена (не
a
,b
,c
,d
). - Классы и методы/функции имеют прописанную документацию
- Есть аннотация типов для методов/функций и их аргументов (кроме
args
иkwargs
). Если функция/метод ничего не возвращает, то используетсяNone
.
import os
# функция-генератор возвращающая количество строк
# во всех обнаруженных py файлах
def search_py_gen(dir: str='D:\Python'):
for walktuple in os.walk(dir):
for file in walktuple[2]:
if file.endswith('.py'):
pathfile = fR'{dir}\{file}'
yield linecounter(pathfile)
# функция по подсчету строк в файле
def linecounter(path):
count = 0
with open(path, 'r', encoding='UTF-8') as file:
while True:
for line in file:
if line[0] != '#' and line[0] != '\n':
count += 1
return count
lines = search_py_gen()
for i in lines:
print(i)