вернуть случайную картинку из папки по команде в боте
Есть папка с картинками. Нужно, чтобы при вызове метода возвращалась одна из 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()