Отправка сообщения в цикле Python
К вопросу прилагаю отрывок из программы. В этом цикле я читаю определённые строчки txt файла. В случае, если строчки пусты, бот присылает сообщение. Проблема в том, что бот присылает сообщение 14 раз, т.е. как-будто на каждую пустую строчку файла. Есть идеи как это можно исправить, т.е. чтобы бот присылал лишь одно сообщение?
with open(f'{call.from_user.id}.txt', 'r', encoding='utf-8') as tasks:
tasks_in_list = tasks.readlines()[1:15]
for line in tasks_in_list:
if line.isspace():
bot.send_message(call.from_user.id, 'Хмм, кажется этот список пуст!')
Ответы (1 шт):
У вас каждый шаг цикла проходит проверка, после которой отправляется сообщение. Если надо отправить сообщение один раз, нужно сделать так, чтоб исполнение кода не шло после отправки (как вариант). Например, в вашем случае:
with open(f'{call.from_user.id}.txt', 'r', encoding='utf-8') as tasks:
tasks_in_list = tasks.readlines()[1:15]
for line in tasks_in_list:
if line.isspace():
bot.send_message(call.from_user.id, 'Хмм, кажется этот список пуст!')
return
После проверки, бот оправляет сообщение, а команда return прекращает выполнение метода/функции.
Однако, это, конечно, не единственный метод решения, в зависимости от ваших задач может подойти другое решение