Python xlsxwriter不会在退出代码-1上创build工作簿

我正在写一个Python代码来实现一些逻辑,并在Excel表中logging它。 当程序正常终止时,xlsxwriter可以正常工作,但是如果通过代码中的某个逻辑错误或者通过任何exception或中断终止,excel工作簿不会被创build。

我甚至试过xlwt,行为是一样的。 这是我的代码:

import xlsxwriter import time try: workbook = xlsxwriter.Workbook('hello.xlsx') worksheet = workbook.add_worksheet() worksheet.write('A1', 'write something') time.sleep(5) # some logic implementation worksheet.write("B1","write something") finally: workbook.close() 

从版本0.7.3开始,xlsxwriter添加了对上下文pipe理器的支持,所以不再需要显式的workbook.close()语句。

你可以尝试包装你的代码,如下所示:

 with xlsxwriter.Workbook('hello.xlsx') as workbook: try: worksheet = workbook.add_worksheet() worksheet.write('A1', 'write something A1') print 1/0 # Generate an exception worksheet.write('A2', 'write something A2') except: worksheet.write('A3', 'write something A3') 

生成的输出xlsx文件应该包含A1A3 。 只有一个finally子句将不会发现exception。

您可以通过执行以下操作来确定正在运行的版本:

 import xlsxwriter print xlsxwriter.__version__