Телеграмм бот. Как отправлять на каждый запрос рандомную картинку

У меня есть простой телеграмм бот, я хочу чтоб каждый раз когда пользователь отправлял сообщение, ему приходила в ответ картинка при том чтоб при каждом сообщении она была разная.

import telebot

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 == "Привет":
        bot.send_message(message.chat.id, "Привет,какое у тебя настроение?")
    elif message.text == "Плохое":
        bot.send_message(message.chat.id,f"Единственное, что может сделать мир лучше – это твоя улыбка",parse_mode='html')
    elif message.text == "Мем":
        photo = open('mem1.jpg', 'rb')
        bot.send_photo(message.chat.id,photo)
    else:
        bot.send_message(message.chat.id,"Если все даже хуже чем плохо,то напиши мне, помогу в любое время :)",parse_mode='html')


bot.polling(none_stop=True)

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

Автор решения: denisnumb

Поскольку вы не предоставили информацию о том, откуда хотите брать картинки, на основе вашего кода, могу предположить, что у вас уже есть папка с картинками.

Тогда самым простым способом будет получение списка названий картинок из папки:

import os

images = os.listdir('C:\\полный\\путь\\к\\папке\\c\\картинками')

А затем, при вызове команды выбирать случайное название файла из этого списка и отправлять его. Разумеется, чтобы картинки не повторялись, нужно удалять выбранный элемент из списка:

import random

img = random.choice(images)
images.remove(img)

. . .

Если вам нужна случайная картинка из интернета, то просто откройте в гугле запрос random picture api и выберите любой подходящий сервис.

→ Ссылка