Всем привет!
Я считал данные с .CSV-файла и тут возник вопрос как мне в цикле отправлять по одному вопросу и получать ответ от пользователя.
Я предполагал, что считаю все вопросы в список, начну проходить список в цикле и на каждой итерации по сле отправки вопроса буду получать ответ от пользователя.
Но я пока не понимаю как это сделать, на ум сразу же приходит yeild, но вариант ещё не опробирован.
Код пока что примитивно минимальный.
@bot.message_handler(commands=['start', 'help'])
def send_welcome(message):
markup = types.ReplyKeyboardMarkup(row_width=2)
markupinline = types.InlineKeyboardMarkup()
inlitem = types.InlineKeyboardButton(text='dsf', callback_data='tef')
itembtn1 = types.KeyboardButton(text='Список вопросов 1')
markup.add(itembtn1)
markupinline.add(inlitem)
bot.send_message(message.chat.id, "ВЫБЕРИТЕ КНОПКУ", reply_markup=markup)
def read_questions_file(file_name):
file = open(file_name, "r", encoding='utf-8')
questions = file.read().split('\n')
print(questions)
# Обычный режим
@bot.message_handler(content_types=["text"])
def any_msg(message):
NameLastName = ''
name_of_plant = ''
number_of_exp = ''
keyboard = types.InlineKeyboardMarkup()
callback_button = types.InlineKeyboardButton(text="Нажми меня", callback_data="tef")
keyboard.add(callback_button)
bot.send_message(message.chat.id, "сообщение из обычного режима", reply_markup=keyboard)
if message.text == 'Список вопросов 1':
qs = read_questions_file('Список вопросов 1.csv')
bot.send_message(message.chat.id, qs[0])
@bot.callback_query_handler(func=lambda call:True)
def callback_inline(call):
# Если сообщение из чата с ботом
if call.message:
if call.data == "tef":
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="ответ")
bot.polling(none_stop=True)
Вот в этом момент хотелось бы, чтобы цикл построчно выдавал и принимал информацию.
if message.text == 'Список вопросов 1':
qs = read_questions_file('Список вопросов 1.csv')
bot.send_message(message.chat.id, qs[0])
Буду рад любой полезной информации!