Что нужно сделать
Есть файл 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}')