如果在打开工作簿后发现错误,如何避免让工作簿保持打开状态?

How to avoid leaving a workbook open if error is found after its opening?

我有一段代码可以通过 xlwings 包打开工作簿并从中读取一些内容。完成后,工作簿将关闭。有时,错误发生在开场白和结束语之间。这使工作簿保持打开状态。当我再次尝试 运行 代码时,文件无法打开,因为它已经是 'open'.

我该如何处理?

另外,遇到这种情况,我什至无法手动打开工作簿。

w1=app.books.open("WorkbookName.xlsx")
# Do stuff that can potentially give errors.
w1.close()

我希望创建一些错误处理,以便在过程中发现异常时关闭工作簿。

使用 try-finally 构造:

w1=app.books.open("WorkbookName.xlsx")
try:
    # Do stuff that can potentially give errors.
finally:
    w1.close()

A finally 子句总是被执行。如果 try 子句中的代码引发未处理的异常,那么 python 解释器将跳转到 finally 子句并执行它(并仅在之后自行终止)。