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

时间:2016-03-03 11:08:58

标签: python excel

我正在编写一个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()

1 个答案:

答案 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文件应包含A1A3。只有一个finally子句不会捕获异常。

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

import xlsxwriter
print xlsxwriter.__version__