我正在xlsxwriter
使用模块创建一个 xlsx 输出到一个临时文件中tempfile
,我将此临时文件的路径存储在一个变量中,稍后我会在另一个脚本中使用它来打开它。
问题是有时打开文件失败并出现错误:
"[Errno 2] No such file or directory: '/tmp/xls5TnVsx'"
抱歉,我对这个问题发生的频率没有确切的了解,但它似乎不时发生,所以我不明白为什么......
这就是我保存到临时文件中的方式:
f = tempfile.NamedTemporaryFile(prefix="xls",delete=False)
xlsfilename = f.name
然后创建 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)
我在这里做错了什么以及关于如何通过使用另一种方法存储到临时文件中来解决这个问题的任何想法?