如何使用Python的Telegram Bot打包发送多张图片文件
解决方案:将多张图片打包为压缩包后发送
要实现批量图片打包发送,你可以先把所有图片压缩成一个ZIP文件,再通过sendDocument接口发送这个压缩包,具体修改如下:
修改后的代码
import requests import numpy as np import zipfile import os # 生成图片路径列表 paths = np.array([]) for z in range(8): paths = np.append(paths, f"path\\{z}.jpg") # 创建临时ZIP压缩包 zip_filename = "images.zip" with zipfile.ZipFile(zip_filename, 'w', zipfile.ZIP_DEFLATED) as zipf: for path in paths: # 只保留文件名,避免压缩包里带路径层级 zipf.write(path, os.path.basename(path)) # 发送压缩包到Telegram群组 url = "https://api.telegram.org/bot<<my-bot-http-token>>/senddocument?chat_id=<<chat-id>>" files = {'document': open(zip_filename, 'rb')} resp = requests.post(url, files=files) # 可选:删除临时生成的ZIP文件 os.remove(zip_filename)
关键说明
- 使用
zipfile.ZipFile创建压缩包,ZIP_DEFLATED参数开启压缩(不需要压缩可改用ZIP_STORED) zipf.write的第二个参数指定压缩包内的文件名,避免把本地路径结构带进压缩包- 发送完成后可删除临时ZIP文件,避免占用存储空间
- 确保Bot有发送文件的权限,且压缩包大小不超过Telegram的文件大小限制(当前为50MB)
内容的提问来源于stack exchange,提问作者user15819643
相关产品推荐
相关产品推荐

