You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Telegram Bot如何不存储到服务器直接发送response.content的PDF文件

实现方案

你可以借助Python内置的io.BytesIO类,将网络请求返回的二进制PDF数据直接封装成类文件对象,不需要写入本地磁盘,直接传给Telegram Bot的发送文件接口即可。

优化后的实现代码如下:

import io
import requests

# 请求获取PDF二进制数据
response = requests.get(url)
# 将二进制内容封装为内存中的类文件对象
pdf_file = io.BytesIO(response.content)
# 可选:给文件设置名称,用户收到的PDF会显示你指定的文件名,避免默认无后缀的异常显示
pdf_file.name = "自定义文件名称.pdf"
# 直接传入内存文件对象发送,不需要读写本地磁盘
update.message.reply_document(document=pdf_file)

相关说明:

  • BytesIO对象本身实现了Python的文件读写协议,完全可以替代本地打开的文件对象传入reply_document方法
  • 不需要手动关闭BytesIO对象,Python垃圾回收机制会自动处理对应的内存释放
  • 如果不需要自定义文件名,可以省略给pdf_file.name赋值的步骤,Telegram端会默认显示file.pdf作为文件名

内容的提问来源于stack exchange,提问作者Bhawyen Mehta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 03:06:04