Python:bot在会话期间发送文件

时间:2018-05-09 17:25:06

标签: python bots python-telegram-bot

我使用python-telegram-bot模块创建了一个机器人。

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 个答案:

答案 0 :(得分: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)