打开临时文件中的xlsxwriter Excel输出

2024-09-30 20:26:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用xlsxwriter模块在一个临时文件中创建一个xlsx输出,我将这个临时文件的路径存储在一个变量中,稍后在另一个脚本中使用它来打开它。在

问题是,有时打开文件失败,并出现以下错误:

"[Errno 2] No such file or directory: '/tmp/xls5TnVsx'" 

很抱歉,我不知道这个问题发生的频率,但它似乎经常发生,所以我不明白为什么。。。在

我是这样保存到临时文件中的:

^{pr2}$

然后创建xlsx输出:

wb = xlsxwriter.Workbook(filename)
ws = wb.add_worksheet(sheetName)
# Write header
....
# Write data
for row, row_data in enumerate(data, start=1):
    for column, key in enumerate(headers):
        ....
wb.close()
f.close()

然后在Python CGI脚本中,我使用变量xlsxfilename,它是打开脚本的路径:

print "Content-type: application/msexcel"
print "Content-Disposition: attachment; filename="+xlsfilename
print
try :
    print open(xlsfilename,"rb").read()
finally:
    try:
        xlsfilename.close()
    except:
        pass

os.unlink(xlsfilename)

我在这里做错了什么?关于如何通过使用另一种方法存储到临时文件中来解决这个问题,有什么想法?在


Tags: in路径脚本forclosedatafilenamexlsx
1条回答
网友
1楼 · 发布于 2024-09-30 20:26:50

我相信这里的问题是你的程序用它自己的输出覆盖创建的文件,就像

wb = xlsxwriter.Workbook(filename)

语句创建新文件。在什么情况下可以删除这个取决于何时删除命名的临时文件(从技术上讲,这发生在close())。在

您应该考虑改用^{},因为您已经明确地删除了正在创建的文件。覆盖文件名是唯一的,并且不会自动删除,应该更容易控制。在

相关问题 更多 >