Имена 2

Что нужно сделать

Есть файл people.txt, в котором построчно хранится N имён пользователей.

Напишите программу, которая берёт количество символов в каждой строке файла и в качестве ответа выводит общую сумму. Если в какой-либо строке меньше трёх символов (не считая литерала \n), то вызывается ошибка и сообщение, в какой именно строке возникла ошибка. Программа при этом не завершается и обрабатывает все имена файла.

Также при желании можно вывести все ошибки в отдельный файл errors.log.

Пример работы программы

Содержимое файла people.txt:
Василий
Николай
Надежда
Никита
Ян
Ольга
Евгения
Кристина

Ответ в консоли:
Ошибка: менее трёх символов в строке 4.
Общее количество символов: 49.

Что оценивается

  • Результат вычислений корректен.
  • Формат вывода соответствует примеру.
  • Основной функционал описан в отдельных функциях.
  • Переменные и функции имеют значащие имена, не только a, b, c, d (подробнее об этом в видео 2.3).
  • Входные и выходные файлы названы так, как указано в задании.
with open('people.txt', 'w', encoding='UTF-8') as file:
    file.write('''Василий
Николай
Надежда
Никита
Ян
Ольга
Евгения
Кристина''')

with open('people.txt', 'r', encoding='UTF-8') as file, \
        open('errors.log', 'w', encoding='UTF-8') as log_file:
    count = 0
    num = 0

    for line in file:
        try:
            num += 1
            nice_line = line.rstrip()
            count += len(nice_line)
            if len(nice_line) < 3:
                raise BaseException
        except BaseException:
            print(f'Ошибка: в {num} строке менее трех символов.')
            log_file.write(f'Ошибка: в {num} строке менее трех символов.\n')

print(f'Общее количество символов: {count}')