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文件应该包含A1
和A3
。 只有一个finally
子句将不会发现exception。
您可以通过执行以下操作来确定正在运行的版本:
import xlsxwriter print xlsxwriter.__version__