我正在编写一个python代码来实现一些逻辑并将其记录在excel表中。当程序正常终止时,xlsxwriter工作正常但如果通过代码中的某些逻辑错误或通过任何异常或中断终止,则不会创建excel工作簿。
我甚至尝试过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 :(得分:1)
从版本0.7.3
开始,xlsxwriter添加了对Python的with
上下文管理器的支持,因此不再需要显式的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
子句不会捕获异常。
您可以通过执行以下操作来确定您正在运行的版本:
import xlsxwriter
print xlsxwriter.__version__