Flask 使用send_file发送临时文件

Flask 使用send_file发送临时文件,flask,python-3.5,temporary-files,sendfile,Flask,Python 3.5,Temporary Files,Sendfile,我正在尝试向用户发送xlsx文件。我将其写入临时文件,但出现以下错误: TypeError:无效文件: 我不知道如何纠正这个。。。下面是我创建临时文件的代码。欢迎并感谢任何指导或建议: price_tf = tempfile.TemporaryFile() writer = pd.ExcelWriter(price_tf, engine='xlsxwriter') price_list_df.to_excel(writer, sheet_name='Price List'

我正在尝试向用户发送xlsx文件。我将其写入临时文件,但出现以下错误:

TypeError:无效文件:

我不知道如何纠正这个。。。下面是我创建临时文件的代码。欢迎并感谢任何指导或建议:

    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()


这纠正了我的问题

这是什么平台?您可能必须使用
price\u tf
对象的
file
属性来访问真正的文件对象。但是,您什么时候清除该文件
tmp.mkstemp()
不会删除该文件。