【发布时间】:2021-06-13 18:50:58
【问题描述】:
简单地说,我需要处理上传的文件而不将其保存在服务器上
使用 open() 在 cli 脚本中工作一切正常,
使用烧瓶和通过 ajax 请求从数据发送的文件
open() 函数和 stream.read() 方法都没有帮助使用 csv
open 本身会引发异常
csv_f = open(request.files['csvfile'].stream, 'rb')
TypeError: expected str, bytes or os.PathLike object, not SpooledTemporaryFile
使用.read()我可以打印出来
csv_f = request.files['csvfile'].stream.read()
data = csv.reader(csv_f, delimiter = ',')
print(csv_f)
b'...'
但迭代也会抛出异常
for row in data:
_csv.Error: iterator should return strings, not int (did you open the file in text mode?)
我只需要一种使用 csv 动态处理 csv 文件的方法
【问题讨论】:
-
您从哪里获取文件(S3 存储桶、hadoop、远程服务器...)?
-
通过ajax请求表单数据
-
open()不会从烧瓶request对象打开文件 -
TypeError: expected str, bytes or os.PathLike object, not SpooledTemporaryFile
标签: python csv flask file-upload request