Flask 使用 send_file 发送临时文件
Flask send temporary file using send_file
我正在尝试向用户发送 xlsx 文件。我将其写入临时文件,但出现以下错误:
TypeError: invalid file: <tempfile._TemporaryFileWrapper object at 0x04A79F90>
我不确定如何更正这个...下面是我创建临时文件的代码。欢迎和赞赏任何指导或建议:
price_tf = tempfile.TemporaryFile()
writer = pd.ExcelWriter(price_tf, engine='xlsxwriter')
price_list_df.to_excel(writer, sheet_name='Price List')
workbook = writer.book
worksheet = writer.sheets['Price List']
writer.sheets['Price List'].set_column('C:C', 45)
writer.sheets['Price List'].set_column('D:D', 65)
writer.sheets['Price List'].set_column('E:E', 12)
writer.sheets['Price List'].set_column('F:F', 6)
writer.save()
writer.close()
myio = io.StringIO()
with open(price_tf, 'rb') as f:
data = f.read()
myio.write(data)
myio.seek(0)
send_file(myio, attachment_filename="price_list.xlsx", as_attachment=True, mimetype='text/xlsx')
TempFile 在 tmp.close()
消失
我更新为使用 tmp.mkstemp()
这解决了我的问题
我正在尝试向用户发送 xlsx 文件。我将其写入临时文件,但出现以下错误:
TypeError: invalid file: <tempfile._TemporaryFileWrapper object at 0x04A79F90>
我不确定如何更正这个...下面是我创建临时文件的代码。欢迎和赞赏任何指导或建议:
price_tf = tempfile.TemporaryFile()
writer = pd.ExcelWriter(price_tf, engine='xlsxwriter')
price_list_df.to_excel(writer, sheet_name='Price List')
workbook = writer.book
worksheet = writer.sheets['Price List']
writer.sheets['Price List'].set_column('C:C', 45)
writer.sheets['Price List'].set_column('D:D', 65)
writer.sheets['Price List'].set_column('E:E', 12)
writer.sheets['Price List'].set_column('F:F', 6)
writer.save()
writer.close()
myio = io.StringIO()
with open(price_tf, 'rb') as f:
data = f.read()
myio.write(data)
myio.seek(0)
send_file(myio, attachment_filename="price_list.xlsx", as_attachment=True, mimetype='text/xlsx')
TempFile 在 tmp.close()
消失
我更新为使用 tmp.mkstemp()
这解决了我的问题