Отправка нескольких файлов через бот pytelegrambotapi

Рейтинг: 0Ответов: 1Опубликовано: 06.02.2023

Надо отправить все файлы из папки в чат бота, используя библиотеку pytelegrambotapi.

Если в папке несколько файлов, приходится их перебирать циклом после объявления glob. Это работает, но файл отправляется без расширения, как document.

Как сделать, чтобы файлы отправлялись под своим именем?

@bot.message_handler(content_types=['text']) # тут бот ловит любой текст, чтобы отправить обработанные файлы
def return_pages(message):
    a = glob.glob("data/*.pdf") # получение всех файлов папки
 
    for i in a:  # прошлись циклом по файлам
        with open(i, "rb") as file:
            b = file.read()
        #print(i)     если выводить в терминал, то выводит как надо   
        bot.send_document(message.chat.id, b, i)  # а вот тут уже на выходе document 

Ответы

▲ 0Принят

Как вариант:

def send_files(message):
    for filename in glob.glob('D:\\bot\\*.*'):
        with open(filename, 'rb') as f:
            bot.send_document(message.chat.id, f)