У меня есть файл .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=";")
...
Но так как я пытаюсь получить файл с помощью кнопки загрузки, то есть HTML-элемента input
типа file
, как упоминалось выше, я получаю FileStorage
объект, который я не могу прочитать.
У кого-нибудь есть идеи, как я могу подойти к этому?
Спасибозаранее!