Как сохранить все изображения из сообщения в телеграмме в боте

Скачиваю изоражение, присланное боту вот так:

@bot.message_handler(content_types=['photo'])
def message_post(message):
    if message.chat.type == 'private':
        f_id = message.photo[-1].file_id
        file_info = bot.get_file(f_id)
        down_file = bot.download_file(file_info.file_path)
        with open('img.jpg', 'wb') as file:
            file.write(down_file)

Но что делать, если пользователь скинет в одном сообщении 2 изображения? Когда я скидываю 2 изображение сохраняется только первое.


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

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

Потому что он перезаписывает каждый раз файл "img.jpg" , чтобы сохранить больше файлов, рекомендую использовать uuid , и каждый файл сохранять со случайным именем. Мой вариант:

import uuid
@bot.message_handler(content_types = ['photo'])
def message_post(message): #saving photo
    if message.chat.type == 'private':
        f_id = message.photo[-1].file_id
        file_info = bot.get_file(f_id)
        down_file = bot.download_file(file_info.file_path)
        name = str(uuid.uuid4())
        with open(name + '.jpg', 'wb') as file:
            file.write(down_file)
    bot.send_message(message.chat.id,'Сохранено')
→ Ссылка