python - 读取损坏的电子表格时出现异常
问题描述
而是一个可能修复的错误报告。我使用的是 3.0.9 版。
我需要处理的文件之一有一个图像有问题。当我用 libreoffice 打开它时,我看到的是占位符而不是图像。但是当我用 load_workbook() 打开它时,会发生异常:
Traceback (most recent call last):
File "/home/pooh/work/isaac_choi/./1.py", line 5, in <module>
wb=load_workbook('pritelli/FW21 WOMAN 27.09.21.xlsx')
File "/home/pooh/venv39/lib/python3.9/site-packages/openpyxl/reader/excel.py", line 317, in load_workbook
reader.read()
File "/home/pooh/venv39/lib/python3.9/site-packages/openpyxl/reader/excel.py", line 282, in read
self.read_worksheets()
File "/home/pooh/venv39/lib/python3.9/site-packages/openpyxl/reader/excel.py", line 257, in read_worksheets
charts, images = find_images(self.archive, rel.target)
File "/home/pooh/venv39/lib/python3.9/site-packages/openpyxl/reader/drawings.py", line 52, in find_images
image = Image(BytesIO(archive.read(dep.target)))
File "/usr/lib/python3.9/zipfile.py", line 1463, in read
with self.open(name, "r", pwd) as fp:
File "/usr/lib/python3.9/zipfile.py", line 1502, in open
zinfo = self.getinfo(name)
File "/usr/lib/python3.9/zipfile.py", line 1429, in getinfo
raise KeyError(
KeyError: "There is no item named 'xl/drawings/NULL' in the archive"
解决方案
我认为 KeyError 可以在 OSError (第 53 行)之后立即处理,并且在这种情况下继续迭代:
except KeyError:
warn('Missing image')
continue
推荐阅读
- python - on_message 等待用户对消息做出反应或超时,然后机器人再次发送另一条带有反应的消息
- javascript - 在 JS 控制台中运行代码时收到错误消息
- javascript - 在 React JS 中动态选择状态对象名称
- amazon-web-services - 有没有办法在 s3 中为预签名的 url 设置时间限制?
- javascript - Intersection Observer 工作,元素在淡入后消失
- php - 使用 GET 关联 switch 语句
- python - 如何使用 if 语句检查键名是否存在于字典中?
- google-api - 从 Google 字体下载字体文件时,我如何也能获得许可证文件?
- node.js - 无法从 MongoDB 中的第二个集合中获取数据
- python - 如何在文本文件中的一行中找到数字的总和?