openpyxl:ValueError:在关闭的文件上的I / O操作 - python

我使用以下代码将图像logo.png放在logo.xlsx中的单元格A1处:

from openpyxl import Workbook
from openpyxl.drawing.image import Image
wb = Workbook()
ws = wb.active
img = Image('logo.png')
ws.add_image(img, 'A1')
wb.save('logo.xlsx')

现在,我尝试使用以下代码使用load_workbook将此文件读取为现有工作簿:

from openpyxl import load_workbook
wb = load_workbook('./logo.xlsx')
wb.save('logo_new.xlsx')

但我收到以下错误:

Traceback (most recent call last):
  File "c:\Users\Sarmad Gulzar\Documents\Visual Studio Code\Python\Excel\test.py", line 3, in <module>
    wb.save("new3.xlsx")
  File "C:\Python37\lib\site-packages\openpyxl\workbook\workbook.py", line 391, in save
    save_workbook(self, filename)
  File "C:\Python37\lib\site-packages\openpyxl\writer\excel.py", line 284, in save_workbook
    writer.save(filename)
  File "C:\Python37\lib\site-packages\openpyxl\writer\excel.py", line 266, in save
    self.write_data()
  File "C:\Python37\lib\site-packages\openpyxl\writer\excel.py", line 85, in write_data
    self._write_images()
  File "C:\Python37\lib\site-packages\openpyxl\writer\excel.py", line 122, in _write_images
    self._archive.writestr(img.path[1:], img._data())
  File "C:\Python37\lib\site-packages\openpyxl\drawing\image.py", line 64, in _data
    img = _import_image(self.ref)
  File "C:\Python37\lib\site-packages\openpyxl\drawing\image.py", line 33, in _import_image
    img = PILImage.open(img)
  File "C:\Python37\lib\site-packages\PIL\Image.py", line 2638, in open
    fp.seek(0)
ValueError: I/O operation on closed file.

附注:我尝试对没有图像的文件执行相同的操作。工作正常。

参考方案

我正在使用openpyxl版本2.5.14。降级到2.5.11修复了它。更多信息here。

Python GPU资源利用 - python

我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Python exchangelib在子文件夹中读取邮件 - python

我想从Outlook邮箱的子文件夹中读取邮件。Inbox ├──myfolder 我可以使用account.inbox.all()阅读收件箱,但我想阅读myfolder中的邮件我尝试了此页面folder部分中的内容,但无法正确完成https://pypi.python.org/pypi/exchangelib/ 参考方案 您需要首先掌握Folder的myfo…

python-docx应该在空单元格已满时返回空单元格 - python

我试图遍历文档中的所有表并从中提取文本。作为中间步骤,我只是尝试将文本打印到控制台。我在类似的帖子中已经看过scanny提供的其他代码,但是由于某种原因,它并没有提供我正在解析的文档的预期输出可以在https://www.ontario.ca/laws/regulation/140300中找到该文档from docx import Document from…

Python ThreadPoolExecutor抑制异常 - python

from concurrent.futures import ThreadPoolExecutor, wait, ALL_COMPLETED def div_zero(x): print('In div_zero') return x / 0 with ThreadPoolExecutor(max_workers=4) as execut…