Python: бот отправляет файл во время разговора

Я создал бота с помощью модуля python-telegram-bot.

Бот генерирует штрих-код с помощью модуля pybarcode.

Во время разговора с ботом я хотел бы отправить пользователю созданное изображение:

from telegram import (ReplyKeyboardMarkup, ReplyKeyboardRemove, InlineKeyboardButton, KeyboardButton)
from telegram.ext import (Updater, CommandHandler, MessageHandler, Filters, RegexHandler,
                      ConversationHandler)
from StringIO import StringIO
import barcode

#..............................
#..............................

def send_barcode(bot, update, user_data):
    fp = StringIO()
    generate('EAN13', u'5901234123457', writer=ImageWriter(), output=fp)
    #... how can I send the RAW image in fp object?
    #..............................................

#..............................
#..............................

заранее спасибо

1 ответ

Используйте bot.send_photo. Если у вас есть файл на диске, используйте его так: bot.send_photo(chat_id=chat_id, photo=open('path/image.png', 'rb')), Если вы хотите опубликовать файл из памяти, есть пример для него из github wiki:

from io import BytesIO
bio = BytesIO()
bio.name = 'image.jpeg'
image.save(bio, 'JPEG')
bio.seek(0)
bot.send_photo(chat_id, photo=bio)
Другие вопросы по тегам