打开已在Flask中上传的文件

发布于 2021-01-29 15:03:20

我正在尝试修改上传到我的Flask应用程序中的csv。当我不通过烧瓶上载它时,我的逻辑工作得很好。

import pandas as pd
import StringIO
with open('example.csv') as f:
    data = f.read()

data = data.replace(',"', ",'")
data = data.replace('",', "',")
df = pd.read_csv(StringIO.StringIO(data), header=None, sep=',', quotechar="'")
print df.head(10)

我将其上传到烧瓶并使用

f = request.files['data_file']

当我通过上面的代码运行它,将open(’example.csv’)替换为open(f)时,出现以下错误

coercing to Unicode: need string or buffer, FileStorage found

我发现问题出在这里是文件类型。我无法在文件上使用open,因为open正在寻找文件名,并且当文件上传到flask时,它是传递给open命令的文件实例。但是,我不知道该如何做。我试过跳过open命令,仅使用data
= f.read(),但这不起作用。有什么建议?

谢谢

关注者
0
被浏览
48
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    如果有人需要,请回答我自己的问题。

    FileStorage对象具有.stream属性,该属性将是io.BytesIO

    f  = request.files['data_file']
    df = pandas.read_csv(f.stream)
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看