Ошибка при загрузки файла на ПК в телеграмм боте
Это возникает при отправки файла(например .jpg) Почему-то не распознаёт тип файла
fileID = message.photo[-1].file_id
TypeError: 'NoneType' object is not subscriptable
Вот весь код из-за чего возникает эта ошибка
@bot.message_handler(content_types=['photo','document'])
def photo(message):
print ('message.photo =', message.photo)
fileID = message.photo[-1].file_id
print('fileID =', fileID)
file_info = bot.get_file(fileID)
print('file.file_path =', file_info.file_path)
downloaded_file = bot.download_file(file_info.file_path)
with open("photos/image.jpg", 'wb') as new_file:
new_file.write(downloaded_file)
photo = open('photos/image.jpg', 'rb')
bot.send_document(message.chat.id, photo)
Замечу что при отправке фото(в сжатом формате) всё работает отлично а если отправлю файл то вот та ошибка выдаёт
Если кто-то знает где можно загрузить документ(именно чтобы было в виде файла так-как в формате фото картинка ухудшается) с бота на пк скиньте ссылку на ресурс
Ответы (1 шт):
Автор решения: Violet
→ Ссылка
при отправке боту файла message.content_type = document, соответственно message.photo[-1].file_id будет None.
для сохранения document:
@bot.message_handler(content_types=['document'])
def get_docs(message):
file_info = bot.get_file(message.document.file_id)
downloaded_file = bot.download_file(file_info.file_path)
src = 'files/received/' + message.document.file_name
with open(src, 'wb') as new_file:
new_file.write(downloaded_file)
bot.reply_to(message, "Пожалуй, я сохраню это")