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 文本中引用

报错截图

image-20230719103102357

解决办法

添加一个参数_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"参数,则源码会去猜测,猜不到就抛出异常,所以解决办法就是直接告诉它,我是啥格式的图片,不要让它猜

image-20230719103437233

posted @   南风丶轻语  阅读(99)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示