Как взять только первую картинку из данного кода на патйон?
Как мне сохранить только первую картинку а не все?
Когда идёт цикл на 13-ой строке он извлекает картинки из id и сохраняет их.
Внизу пример кода.
from aiogram import types, Dispatcher
from link import bot, dp
async def userinfo(message: types message):
user_id = message.from_user.id
result = await bot.get_user_profile_photos(user_id)
photos = result["photos"]
if not photos:
await message.answer("Нет фото!")
return
for photo sizes in photos:
photo = max(photo_sizes, key=Lambda x: x["width"])
file_id = photo["file id"]
file = await bot.get_file(file_id)
await bot.download_file(file.file_path, f"bot_cards/user_img-jpg")
def handler_message_userinfo(dp : Dispatcher):
dp.register_message_handler(userinfo, commands=["userinfo"], commands_prefix="/!")
Ответы (1 шт):
Автор решения: Jack Owest
→ Ссылка
Например, замените вашу строку for photo sizes in photos: на photo = photos[0]. Это присвоит переменной photo только первый элемент списка photos, который содержит информацию о первой картинке пользователя:
async def userinfo(message: types message):
user_id = message.from_user.id
result = await bot.get_user_profile_photos(user_id)
photos = result["photos"]
if not photos:
await message.answer("Нет фото!")
return
photo = photos[0]
sizes = photo[-1]
file_id = sizes["file_id"]
file = await bot.get_file(file_id)
await bot.download_file(file.file_path, f"bot_cards/user_img-jpg")