2017-04-26 91 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()

這糾正了我的問題

相關問題