Задать вопрос
@pollader

Как отправлять текст соответствующий картинке в телеграм боте на Python?

Вот снизу код. Там уже сделан вывод рандомной картинки. Но мне нужно чтобы бот выводил текст который относится к этой картинке

Пример: есть 4 картинки Красная.png Синяя.png Желтая.png Зеленая.png
Выпадает зеленая и соответственно текст под ней "Тебе выпала зеленая!"

import random
import os

bot = telebot.TeleBot('')

@bot.message_handler(commands=['start','help'])

def start(message):
    mess = f'Привет,<b>{message.from_user.first_name}, мои команды: Привет,Плохое,Мем </b>'
    bot.send_message(message.chat.id, mess, parse_mode='html')

@bot.message_handler()
def get_user_text(message):
    if message.text == "Мем":
        photo = open('test/' + random.choice(os.listdir('test')), 'rb')
        bot.send_photo(message.from_user.id, photo, caption = 'Лови')
    else:
        bot.send_message(message.chat.id, "ez", parse_mode='html')

bot.polling(none_stop=True)
  • Вопрос задан
  • 310 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
Самый простой вариант - создать словарь формата название файла : фраза и получать фразу собственно по названию нарандомленного файла.
Ну или просто получать название файла и подставлять.
Ответ написан
Комментировать
Vindicar
@Vindicar
RTFM!
1. вынеси random.choice(os.listdir('test')) в переменную, например, img
2. используй os.path.splitext(os.path.basename(img))[0], чтобы получить имя файла картинки без расширения
3. Не забудь отправить файл через photo = open('test/' + img, 'rb')
4. PROFIT
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы