Python:无法从文件存储对象中读取

Python:无法从文件存储对象中读取,python,csv,flask,io,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: initia

我有一个
.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
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfc in position 97: invalid start byte
我还尝试通过以下方式读取
FileStorage
对象的文件:

file_data = file.read().decode("utf-8")
我得到了以下错误:

TypeError: initial_value must be str or None, not bytes
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
中编码。尝试将其解码为
拉丁语-1

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

非常感谢。这就是问题所在!