Python:无法从 FileStorage 对象读取

标签 python csv flask io

我有一个 .xlsx 文件,并将其转换为 .csv 文件。然后我将 .csv 文件上传到我编写的 Python 脚本中,但抛出错误。

由于文件是通过 HTTP 上传的,因此我使用 file = request.files['file'] 访问它。这将返回一个 FileStorage 类型的文件。在我尝试使用 StringIO 对象读取它之后,如下所示:

io.StringIO(file.stream.read().decode("UTF8"), newline=None)

我收到以下错误:

TypeError: initial_value must be str or None, not bytes

我还尝试通过这种方式读取FileStorage对象的文件:

file_data = file.read().decode("utf-8")

我收到以下错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfc in position 97: invalid start byte

也许值得注意的是,我可以使用以下代码直接读取该文件,即作为 csv 文件:

with open('file_path', 'r') as file:
   csv_reader = csv.reader(file, delimiter=";")
   ...

但是由于我试图从上传按钮获取文件,即 file 类型的 input HTML 元素,如上所述,我得到了FileStorage 对象,我无法读取它。

有人知道我该如何解决这个问题吗?

提前谢谢您!

最佳答案

可能不是用 utf-8 编码的。尝试将其解码为 latin-1:

file_data = file.read().decode("latin-1")

关于Python:无法从 FileStorage 对象读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52666182/

相关文章:

javascript - 如何将变量的值从子组件发送到父组件?

python - 在 gunicorn 中使用额外的命令行参数

javascript - 为什么 jquery $.post 命令不向服务器发送 JSON 数据

python - GetSearch还是SreamListener? Python

python - 在 Python 中取消嵌套/规范化 JSON

javascript - 通用深层嵌套数组的 Json 到 CSV 转换的通用方法

django - Django和Flask是否需要单独的Web服务器来运行Web应用程序?

python - 将图表重新绘制为视频

python - 在 python 中获取 xscreensaver 状态

r - 如何将多个数据框导出到 CSV?