Рандомайзер фоток телеграм бот

if message.text == 'Фотка'
   photo = open('Photo/photo.jpg', 'rb')
   bot.send_photo(message.chat.id, photo)

Я хочу чтобы он отправлял не определенное фото а рандомное из папки, как это сделать?


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

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

Добавьте названия всех фотографий в список и выбирайте случайный элемент списка:

import random

photos = ['photo.jpg', 'another_photo.jpg', 'photo.png']

if message.text == 'Фотка':
    with open(random.choice(photos), 'rb') as photo:
        bot.send_photo(message.chat.id, photo)
→ Ссылка
Автор решения: Alexey Leshchenko
import random, glob

if message.text == 'Фотка':
   files = glob.glob('*.jpg')
   with open(random.choice(files), 'rb') as photo:
       bot.send_photo(message.chat.id, photo)
  1. Использовал glob, чтобы получить список файлов.
  2. Использовал with open, чтобы автоматом закрыть файл при выходе.
→ Ссылка