Python 报错 Could not guess image MIME subtype
Python 报错 Could not guess image MIME subtype
问题描述:
使用MIMEImage打包图片时,报错Could not guess image MIME subtype
from email.mime.image import MIMEImage
identification = uuid.uuid4().hex
with open(abspath, "rb") as f:
content = f.read()
img = MIMEImage(content)
img.add_header("Content-ID", identification) # 定义图片 ID,在 HTML 文本中引用
报错截图
解决办法
添加一个参数_subtype="xxx"
即可xxx就是图片类型,例如png
identification = uuid.uuid4().hex
with open(abspath, "rb") as f:
content = f.read()
img = MIMEImage(content, _subtype="png")
img.add_header("Content-ID", identification) # 定义图片 ID,在 HTML 文本中引用
备注
网上说添加_subtype=False也行,但如果你知道图片的类型,直接添加后缀更好,例如我的图片是.png结尾的,我就添加_subtype="png"
源码解析
从源码中可以看到,如果不给_subtype="xxx"参数,则源码会去猜测,猜不到就抛出异常,所以解决办法就是直接告诉它,我是啥格式的图片,不要让它猜
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示