Как отправить файл в aiogram 3.0.0b4?

Рейтинг: 2Ответов: 2Опубликовано: 12.02.2023

Как отправить файл в aiogram версии 3.0.0b4?

Использую следующий код и не знаю, что делать дальше:

f = open('otchet.txt', 'w')
f.write(otchet)
f.close()

Файл создал, а как отправить понять не смог.

Ответы

▲ 3

Для того чтобы это сделать, используйте специальную обёртку FSInputFile в aiogram для локальных файлов:

from aiogram.types.input_file import FSInputFile


document = FSInputFile('otchet.txt')
await bot.send_document(chatid, document)

Здесь chatid — ID чата, в который отправляется файл.

▲ 0

Мой пример на Aiogram 3

через инлаин кнопку скачать с помощью цикла получает все файлы EXCEL с расширением .xlsx и отправляет пользователю.

import time
import glob
from aiogram import F, Bot

from aiogram.types import CallbackQuery, FSInputFile

router = Router()
@router.callback_query(F.data.startswith('download_price'))
async def download_price(call: CallbackQuery, bot: Bot):
await call.message.delete()
await call.answer(cache_time=2)
for file in glob.glob('./excel/*.xlsx'):
    file_input = FSInputFile(file)
    file_name = await bot.send_document(
        call.message.chat.id, file_input,
        caption=f'Актуальный на <b>{time.strftime("%d-%m-%Y", time.localtime())}</b>')