Как заставить бота отправлять рандомную картинку из папки, Python Aiogram?
Как заставить бота отправлять рандомную картинку из папки, Python Aiogram? Нужно составить список фотографий, которые находятся на одном пути, в одной папке (C:\Users\andis\Desktop\Python\EasyBot). Как только список появился, нужно, что бы бот отправлял рандомную фотку через random.choice в чат
если список плоский, то os.listdir
если с подпапками os.walk
потом открываем файл папки как байтовый поток и с правильным mime пересылаем (этот пункт возможно сделать и проще, но так прозрачнее)
bybacapitan, Подробный код никто не даст, пока сам не предоставишь свой код. Хотя бы будет понятно что ты сам пытался разобраться.
Далее. По теме отправки фото. Если почитать документацию Telegram Bot Api, то можно найти упоминание о работе с фотографиями
If the file is already stored somewhere on the Telegram servers, you don't need to reupload it: each file object has a file_id field, simply pass this file_id as a parameter instead of uploading. There are no limits for files sent this way.
Т.е. лучший способ работы с файлами - это использовать ID уже загруженных файлов.
Выигрыш двойной:
- не надо тратить время и траффик на отправку файла во второй, третий и т.д. раз
- серверы телеги не засрутся дубликатами файлов и твоя карма будет чиста.
Поэтому если у тебя есть куча картинок, которые ты хочешь рандомно отправлять в телегу, то лучше разово их отправь своему боту, запомни ID каждой картинки, сохранив в БД или в файл или куда угодно. А потом вытаскивай рандомный ID как случайный элемент из списка. Как это делать тебе уже отвечали ранее.