当前位置: 首页 > 面试题库 >

Python Flask send_file StringIO空白文件

狄钧
2023-03-14
问题内容

我正在使用python 3.5和flask 0.10.1并喜欢它,但是send_file有点麻烦。我最终想处理一个pandas数据框(来自Form数据,在本示例中未使用,但将来需要使用),并将其发送为csv格式下载(没有临时文件)。我所看到的实现此目标的最佳方法是给我们StringIO。

这是我尝试使用的代码

@app.route('/test_download', methods = ['POST'])
def test_download():
    buffer = StringIO()
    buffer.write('Just some letters.')
    buffer.seek(0)
    return send_file(buffer, as_attachment = True,\
    attachment_filename = 'a_file.txt', mimetype = 'text/csv')

使用正确的名称下载文件,但是该文件完全空白。

有任何想法吗?编码有问题吗?这在别的地方有答案吗?谢谢!


问题答案:

这里的问题是,在Python 3中,你需要使用StringIO和,csv.write并且send_file必须BytesIO同时使用。

@app.route('/test_download')
def test_download():
    row = ['hello', 'world']
    proxy = io.StringIO()

    writer = csv.writer(proxy)
    writer.writerow(row)

    # Creating the byteIO object from the StringIO Object
    mem = io.BytesIO()
    mem.write(proxy.getvalue().encode('utf-8'))
    # seeking was necessary. Python 3.5.2, Flask 0.12.2
    mem.seek(0)
    proxy.close()

    return send_file(
        mem,
        as_attachment=True,
        attachment_filename='test.csv',
        mimetype='text/csv'
    )


 类似资料:
  • 问题内容: 因此,我一直试图为我的一个朋友编写一个Bukkit插件,由于某种原因,配置生成无法正常工作。有问题的代码在下面,我很乐意添加人们需要帮助的所有代码。当我运行程序时,创建的配置文件最终空白。测试文件很好(我只是通过注释掉删除文件的行来测试它),但是一旦我尝试获取多行,它就会失败。有人可以帮忙吗? 整个过程包含在try / catch循环中,只是为了捕获可能弹出的任何错误。我感觉到我缺少一

  • 8.1 空行 空行将逻辑相关的代码段分隔开,以提高可读性。 下列情况应该总是使用两个空行: 一个源文件的两个片段之间 类声明和接口声明之间 下列情况应该总是使用一个空行: 两个方法之间 方法内的局部变量和方法的第一条语句之间 块注释(参见"5.1.1 节")或单行注释(参见"5.1.2 节")之前 一个方法内的两个逻辑段之间,用以提高可读性 8.2 空格 下列情况应该使用空格: 一个紧跟着括号的关

  • 我已确认已在服务器上安装gettext。我使用本教程开始学习,并遵循其指导。 我还在PHP手册的gettext()页面上读到,如果在翻译表中找不到翻译,它将只使用未翻译的文本。 对于本地化,我有 我有两个目录设置,一个为en(翻译/en/LC_MESSAGES/message.po)和另一个为zh(相同的结构。)我生成的. po文件使用 我的问题:根本没有显示“en”的文本原始字符串是英文的,我最

  • 问题内容: 在我当前的项目中,我们总是在Java源文件的末尾插入一个空的新行。我们还使用CheckStyle(具有错误级别)来强制执行此操作。 我一直在寻找这个主题很长时间,但是不幸的是,我找不到任何令人信服的理由。似乎其他开发人员对此无动于衷,因为他们只是选中了Eclipse formatter中的一个复选框,并且它是自动完成的。但是我仍然不知道为什么需要它,为什么它很重要。所以我的问题是: 为

  • 假设我有一个简单的管道分隔文件,缺少值: 我把它读到了一个数据目录中: 缺少的第三列不是null值,而是字符串null:

  • 我遇到了损坏的CSV问题,它在图像链接中有空白。 CSV文件由我的客户业务合作伙伴自动创建,约22000行。CSV中大约有30个链接被破坏,我无法修复。因为它每3小时更新一次。 所以,我试图想出一个自动的解决方案,但似乎没有任何效果。 问题在于图像链接,如以下链接:https://images.tyroo.de/GISLAVED_ULTRA_SPEED2�.jpg 它以前有空间。一些文件有3个空格