помогите исправить ошибку в telebot python

попробовал написать кнопки для оценивания ответа администратора: кнопки оценивания ответа

код:

markup = types.InlineKeyboardMarkup(row_width=2)
butt90 = types.InlineKeyboardButton('?', callback_data='good')
butt91 = types.InlineKeyboardButton('?', callback_data='bad')
markup.add(butt90, butt91)

@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
    try:
        if call.message:
            if call.data == 'good':
                file = open('C://tgbot/likes.txt', 'rw')
                file.write('good!!') # ? 
                file.close()
            elif call.data == 'bad':
                file = open('C://tgbot/likes.txt', 'rw')
                file.write('bad!!') # ?
                file.close()

    except Exception as e:
        print(repr(e))

и создал тот же файл likes.txt. нажимаю кнопку оценить и начинается загрузка на кнопке, но в файл ничего не вписывается. помогите пожалуйста подсказать в чем ошибка? ( в командную строку никакие ошибки не пишутся и бот после нажатий на кнопки работает дальше)

я поэкперементировал и получился вот такой код:

def callback_inline(call):
    if call.message:
        if call.data == 'good':
            with open('C://tgbot/likes.txt', 'w') as f:
                f.write('good!!') # ?

        elif call.data == 'bad':
            with open('C://tgbot/likes.txt', 'w') as f:
                f.write('bad!!') # ?

все работает также хорошо, но также не записывается в файл likes слова

Сейчас у меня бот хорошо заработал и всё что требовалось работает!
если у вас возникла такая же проблема, то:

  1. Проверьте, нету ли в коде bot.callback_query_handler(func=lambda call: True) def callback_inline(call) который не используется, или конфликтует со вторым bot.callback_query_handler.
  2. возможно что то написали не правильно, перечитайте код и поймите, всё ли написано верно.
  3. или же почитайте комментарии под вопросом и посмотрите какая у меня была ошибка.

Всем спасибо!


Ответы (0 шт):