@Asriel

Как правильно скачать фото профиля через aiogram?

Всем привет. У меня бот, который при определенной команде скачивает фото профиля. Вот сам код:
async def get_profile_photo(chat_id: int) -> InputFile:
    logger.debug("начало теста")
    profile_pictures = await dp.bot.get_user_profile_photos(chat_id)
    logger.debug("фото профиля взято")
    photo_path = f"../media/prf{chat_id}.jpg"
    if profile_pictures.total_count != 0:
        logger.debug("фото профиля ЕСТЬ")
        await profile_pictures.photos[0][-1].download(destination=photo_path)
        logger.debug("фото профиля СКАЧАНО")


В итоге выдает ошибку
return await self.bot.download_file(file_path=file.file_path, destination=de
stination, timeout=timeout,
  File "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\a
iogram\bot\base.py", line 235, in download_file
    dest = destination if isinstance(destination, io.IOBase) else open(destination, 'wb')
FileNotFoundError: [Errno 2] No such file or directory: '../media/prf5091977781.jpg'
  • Вопрос задан
  • 971 просмотр
Пригласить эксперта
Ответы на вопрос 1
@EnotShow
async def get_profile_photo(chat_id: int) -> InputFile:
    logger.debug("начало теста")
    profile_pictures = await dp.bot.get_user_profile_photos(chat_id)
    logger.debug("фото профиля взято")
    photo_path = f"../media/prf{chat_id}.jpg"

    os.makedirs(os.path.dirname(photo_path), exist_ok=True)  # создает директорию если она не существует

    if profile_pictures.total_count != 0:
        logger.debug("фото профиля ЕСТЬ")
        await profile_pictures.photos[0][-1].download(destination=photo_path)
        logger.debug("фото профиля СКАЧАНО")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы