Поврежденный файл после Python Загрузка запросов - PullRequest
0 голосов
/ 07 февраля 2020

После загрузки файла xlsx с помощью запросов, при попытке открыть его я получаю сообщение об ошибке в excel, говорящее, что файл не может быть открыт, он поврежден . Я думаю, что это как-то связано с кодировкой и visible_encoding в reqsponce. Смотрите изображение ниже и обратите внимание на формат content . Ответ - поврежден Но это только мое предположение. Мой код хорошо работает для другой загрузки из той же сети, и там ответ выглядит так: Ответ - не поврежден

Это мой код:

resp1 = requests.get(url_full, headers=task, verify=False)



#file_name = resp1.json()['fileName']
file_name = pack + '-' + date_str + '.xlsx'
with open(path + file_name, 'wb') as f:
        #for chunk in resp.iter_content(chunk_size=1024):
            #shutil.copyfileobj(BytesIO(resp.content), f)
        f.write(resp1.content)
f.close()

Спасибо Вы за вашу помощь!

1 Ответ

0 голосов
/ 10 февраля 2020

Запросы в документах предлагают использовать iter_content для фрагментированных ответов.

Это было в вашем коде, но по какой-то причине вы пытались записать каждый блок в отдельный файл. Рассмотрим:

# Note the added `stream=True`.
response = requests.get(url_full, headers=task, verify=False, stream=True)

with open(whatever_path, "wb") as outfile:
  for chunk in response.iter_content(chunk_size=None):  # Let the server decide.
    outfile.write(chunk)
# Here the response is exhausted, and outfile is closed.
...