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")
非常感谢。这就是问题所在!