2017-04-26 77 views
0

我正在尝试向用户发送一个xlsx文件。我把它写入到一个临时文件,但我发现了以下错误:使用send_file发送临时文件

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') 
+0

什么平台这是什么?您可能必须使用'price_tf'对象的'file'属性来访问真正的文件对象。 – pjcunningham

回答

0

临时文件消失在tmp.close() 我更新为使用tmp.mkstemp()

这纠正了我的问题

相关问题