Ошибка при чтении xlsx-файла, скачанного с помощью requests
Всем привет. Не могу понять, почему возникает ошибка с экселевскими файлами, которые скачаны с помощью requests, если при скачивании вручную никаких проблем нет.
Скачиваю следующим образом:
def download_file(url: str, filename: str) -> None:
# url = https://bdu.fstec.ru/files/documents/thrlist.xlsx
# filename = 'downloads/thrlist.xlsx'
try:
response = requests.get(url=url, verify=False)
with open(filename, 'wb') as downloaded_file:
downloaded_file.write(response.content)
except Exception as ex:
print(ex)
После чего пытаюсь извлечь из этого файла данные с помощью pandas:
def parse_threats_info(file: str) -> None:
column_names = ['id', 'name', 'info']
excel_file = pd.read_excel(file, sheet_name=0, skiprows=2, usecols="A,B,C", header=None, names=column_names)
...
Но возникает ошибка:
ValueError: Excel file format cannot be determined, you must specify an engine manually.
При этом с файлами, которые были скачаны вручную, все прекрасно работает. Вот не могу никак понять, почему с файлами, скачанными через requests, возникает эта ошибка.
К тому же в самом экселе такие файлы тоже не открываются:
Источник: Stack Overflow на русском