@qwwwwwty

В чем заключается ошибка, Python Aiogram?

моя функция должна скачивать фотографию, который отправляет пользователь боту, с чем функция и справляется, НО при попытке открыть эту скачанную ботом фотографию - любая программа для просмотра фоток выкидывает ошибку "К сожалению, фотографии не удается открыть этот файл, так как он в настоящее время не поддерживается, либо файл поврежден" (имя файла test.jpg). и сама консоль выдает ошибку, но мне кажется эта ошибка не связана с проблемой открытия файла. код и ошибки ниже:

@dp.message_handler(content_types=['photo'])
async def handle_docs_photo(message):
    file_photo = message.photo[-1].file_id
    idfile = await bot.get_file(file_photo)
    
    filename, file_extension = os.path.splitext(idfile.file_path)
    dowloaded_file_photo = await bot.download_file(idfile.file_path)

    src = "photos/" + message.photo[-1].file_id + file_extension
    with open(src, "wb") as new_file:
        new_file.write(dowloaded_file_photo)

ошибка в консоли:

618d79b5632c8788098231.png

ну и на всякий случай ошибка из "программы для открытия фотографии":

618d79e68e7b4033103952.png

Интересный факт, при скачивании этих фотографий - они не имеют никакого веса (т.е. нет вообще размера)
  • Вопрос задан
  • 217 просмотров
Решения вопроса 1
shabelski89
@shabelski89
engineer
В трейсе ошибки же написано :
TypeError: a bytes-like object is required, not '_io.BytesIO'

new_file.write(dowloaded_file_photo.read())
или
new_file.write(dowloaded_file_photo.getvalue())
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы