我正在尝试修改上传到我的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(),但这不起作用。有什么建议?
谢谢
如果有人需要,请回答我自己的问题。
FileStorage对象具有.stream属性,该属性将是io.BytesIO
f = request.files['data_file']
df = pandas.read_csv(f.stream)
在Flask中处理文件上传非常简单。 它需要一个enctype属性设置为的HTML表单,将该文提交到指定URL。 URL处理程序从对象中提取文件并将其保存到所需的位置。 每个上传的文件首先保存在服务器上的临时位置,然后再保存到最终位置。 目标文件的名称可以是硬编码的,也可以从对象的属性中获取。 但是,建议使用函数获取它的安全版本。 可以在Flask对象的配置设置中定义默认上传文件夹的路径和上传文件
问题 你在Python中有一个打开的文件对象,但是需要将它传给要使用这个文件的C扩展。 解决方案 要将一个文件转换为一个整型的文件描述符,使用 PyFile_FromFd() ,如下: PyObject *fobj; /* File object (already obtained somehow) */ int fd = PyObject_AsFileDescriptor(fobj);
在Microsoft Excel for Mac 2011 14.1.0版中正确打开文件时遇到问题。文件将打开,但将分隔符设置为逗号的对话框不会出现,因此所有列都用逗号连接。有没有办法让Excel识别逗号分隔符?
问题内容: 这是我上传多个文件的代码: HTML代码: 密码: 但是它会上传单个文件,而不是多个文件。 问题答案: 在模板中,你需要在上传输入中添加属性: 然后在查看功能中,上传的文件可以通过列表获取。循环此列表并在每个项目上调用save()方法将它们保存在给定路径中: 此外,你可能需要使用secure_filename()来清洁文件名: 你也可以使用此方法生成随机文件名。 完整演示 视图: im
问题内容: 嗨,我对Flask很陌生,我想使用ajax调用将文件上传到服务器。如文档中所述,我将文件上传添加为以下格式: 我这样写了ajax处理程序 我不知道如何从中获取上传的文件(不是名称) 并将文件保存在文件夹中。我不太确定如何从我编写的处理程序中读取文件: 如果有人可以帮助,我将不胜感激。先感谢您 问题答案: 要回答您的问题… HTML: JavaScript: 现在,在flask的终结点视
问题内容: 有没有办法用Flask接收多个上传的文件?我尝试了以下方法: 然后打印内容 如果我上传多个文件,它将仅打印该集中的第一个文件: 是否可以使用Flask的内置上传处理方式接收多个文件?谢谢你的帮助! 问题答案: 你可以使用flask.request.files的方法getlist,例如: