import xlsxwriter
wb = xlssxwriter.Workbook
ws = wb.add_worksheet()
for i in range (len(list)):
ws.write(i,0,"Hello World!")
#If this script fails, run ws.close()
ws = wb.add_worksheet()
try:
for i in range (len(list)):
ws.write(i,0,"Hello World!")
except: # Okay to use bare except because we re-raise after cleanup
ws.close()
raise # Re-raise whatever exception led us here now that cleanup is done
这就是上下文管理器的用途(
with
语句)。工作簿类实际上提供了必要的内容。你知道吗就这么简单
见Workbook documentation
如果您还想做其他事情,
try ... except ... else ... finally
语句就是您所需要的。见documentation对于调用
close
方法的特定情况(对象本机不支持上下文管理协议,因此不能在with
语句中使用它),可以通过try
/finally
对其进行包装,使其与with
语句兼容,从而替换代码:使用(将
import contextlib
添加到文件顶部):当块退出时无条件地调用
close
,无论是异常调用return
,还是只是自然地无错误地离开块或return
(这通常是您想要的)。如果出于某种原因,您只想在出现异常时调用它,则可以执行以下操作:这只会在异常发生时
close
,并且会重新释放异常(因为在这种情况下,静默地继续可能是错误的)。你知道吗嗯。一般来说,这可以通过以下方法解决:
相关问题 更多 >
编程相关推荐