вернуть случайную картинку из папки по команде в боте

Есть папка с картинками. Нужно, чтобы при вызове метода возвращалась одна из 10 картинок, которая находится в папке. Пробовал делать с os и random, но картинки не оправляются в чат по определенной команде. Никаких решений не нашел.


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

Автор решения: Riangry
def send_picture(chat_id):
    files = os.listdir(directory)  # указываем директорию где у нас хранятся фотки
    random_photo = random.choice(files) # выбираем рандомную из них
    bot.send_photo(chat_id, get(random_photo).content) # отправляем пользователю с chat id = chat_id

Далее вызывай эту функцию на каком нибудь хандлере send_picture(message.chat.id) (если в ответ на сообщение) или send_picture(call.message.chat.id) (если фотка отправляется в ответ на нажатие инлайн кнопки)

→ Ссылка
Автор решения: Violet
from glob import glob
from random import choice


@bot.message_handler(commands=['start'])
def start(message):
    picture = []
    for pic in glob('files/*.JPG'):
        picture.append(pic)
    img = open(choice(picture), 'rb')
    bot.send_photo(message.chat.id, img)
    img.close()
→ Ссылка