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

如何区分Pillow抛出的OSError:系统错误还是图像解析错误?

如何区分图片读取时的两类OSError:格式问题还是系统异常?

部分图片能通过image.verify()校验,但读取时仍会抛出以下两类OSError:

OSError: broken data stream when reading image file

OSError: image file is truncated (XXX bytes not processed)

这类错误无法直接判断是图像格式本身有问题,还是真实的系统故障(比如硬件损坏、文件系统异常、磁盘空间不足等)。相关问题在GitHub上存在多年仍未解决,现咨询如何分辨这两类错误?


分辨方法

  • 检查文件与存储状态

    1. 核对文件大小:对比本地文件和原始源文件的大小,若本地文件明显偏小,大概率是文件未写入/传输完整,属于系统或传输问题;大小一致仍报错则更可能是格式损坏。
    2. 复制文件测试:把文件复制到另一块正常的存储介质再读取,若复制失败或复制后仍报错,说明原存储存在硬件/文件系统异常;复制后能正常读取则原存储路径有问题。
    3. 排查磁盘状态:用系统工具(Windows的chkdsk、Linux的fsck)扫描磁盘,检查是否有坏道或文件系统错误;同时确认磁盘剩余空间,排除磁盘已满导致的写入不完整。
  • 验证图像本身有效性

    1. 第三方工具测试:用Photoshop、GIMP或系统自带看图工具打开文件,若这些工具也提示格式错误,基本确定是图像本身损坏;若其他工具能正常打开,说明是所用图像处理库(如PIL/Pillow)的兼容或校验逻辑问题。
    2. 检查文件头:查看图像文件头(JPEG以FF D8开头、PNG以89 50 4E 47开头),文件头错误属于格式问题;文件头正常但后续数据异常的,结合系统检查结果判断。
  • 多环境重复测试

    1. 跨机器测试:换一台正常机器读取该文件,若同样报错则是文件本身问题;若能正常读取则原机器的系统、存储或库环境存在异常。
    2. 批量文件测试:若仅单个文件报错,更可能是该文件的格式或传输问题;若多个同类型文件都报错,优先排查系统层面问题(如磁盘驱动、文件系统)。

内容的提问来源于stack exchange,提问作者fabien-michel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 02:18:22