【问题标题】:Flask send temporary file using send_fileFlask 使用 send_file 发送临时文件
【发布时间】:2017-09-24 05:27:21
【问题描述】:

我正在尝试向用户发送 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')

【问题讨论】:

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

标签: flask python-3.5 temporary-files sendfile


【解决方案1】:

TempFile 在tmp.close() 处消失 我更新为使用tmp.mkstemp()

这纠正了我的问题

【讨论】:

  • 但是,你什么时候清除文件? tmp.mkstemp() 不会删除文件。
猜你喜欢
  • 2020-11-11
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 2013-03-03
  • 2011-04-13
  • 2019-05-13
  • 1970-01-01
  • 2013-10-25
相关资源
最近更新 更多