python: бот ищет не тот message.text в telebot
Написал функцию "улучшение для авто", вот код:
elif message.text == 'Установить диски' or message.text == 'установить диски':
def start_2(message):
file = open(f'c://tgplay/{message.chat.id}_money.py', 'r+')
qw1 = int(file.read())
nums = int(qw1)-int(300000)
file.close
bot.send_message(message.chat.id, 'Вы установили диски ' + '{}'.format(message.text) + ' на своё авто! Чтобы посмотреть введите "Машина".')
file = open(f'c://tgplay/{message.chat.id}_money.py', 'r+')
moneq = int(file.read())
file.close
if moneq >= int(300000):
bot.send_message(message.chat.id, 'Внимание: после установки дисков на своё авто, вы больше не сможете его удалить!')
if message.text == 'yokatta' or message.text == 'Yokatta':
file = open(f'c://tgplay/{message.chat.id}_avtoylych.py', 'x+', encoding="utf-8")
file.write(str('Yokatta'))
file.close
elif message.text == 'racing superturismo' or message.text == 'Racing superturismo':
file = open(f'c://tgplay/{message.chat.id}_avtoylych.py', 'x+', encoding="utf-8")
file.write(str('Racing superturismo'))
file.close
elif message.text == 'borbet' or message.text == 'Borbet':
file = open(f'c://tgplay/{message.chat.id}_avtoylych.py', 'x+', encoding="utf-8")
file.write(str('Borbet'))
file.close
elif os.path.isfile(f'c://tgplay/{message.chat.id}_avtoylych.py'):
bot.send_message(message.chat.id, 'У вас уже есть диски на авто!')
return
msg = bot.send_message(message.chat.id, 'Введите название дисков:')
bot.register_next_step_handler(msg, start_2)
else:
bot.send_message(message.chat.id, 'Недостаточно средств!')
И когда я тестирую команду, бот визуально пишет что диск добавлен, но на background'e ничего не записывается, в чем ошибка? по моему написано всё правильно. Не судите строго, я новичок и прошу у вас помощи, заранее спасибо огромное!
Ответы (1 шт):
Автор решения: Komedik
→ Ссылка
Вы не закрываете файл, так как закрытие файла пишется со скобками:
file.close => file.close()
И ещё пару советов:
'Текст '+'{}'.format(переменная)+'текст' можно заменить на: f'Текст {переменная} текст'
А проверку, что написано в сообщении можно сделать с помощью нижнего регистра:
message.text = 'хОЧу пОМЕНять ДисКИ'
if message.text.lower() == 'хочу поменять диски':
print(message.text)
Вывод: хОЧу пОМЕНять ДисКИ