Загрузите файл непосредственно в файловую систему в Python - PullRequest
0 голосов
/ 10 октября 2019

Есть ли способ передать файл напрямую в файловую систему? Даже если соединение потеряно, я хочу увидеть все содержимое этого конкретного файла в фс. Точно так же, как wget или curl.

Однако использование запроса приводит к проблеме сначала загрузки содержимого ответа, а затем записи его в файловую систему.

with open(file_name, "wb") as file:
    response = get(url) # may take some time
    file.write(response.content)

Проблема: в то время как файлЭто «загрузка», он хранится в другом месте (я думаю, в памяти или временное замещение в файловой системе). Это означает, что у меня есть 0-байтовый файл, если запрос (успешно) не завершен.

Могу ли я решить эту проблему, не используя стороннюю библиотеку lib?

1 Ответ

1 голос
/ 10 октября 2019

Потоковая передача непосредственно в файл может быть достигнута с помощью requests и stream=true, или посмотрите другие полезные примеры

with open(file_name, 'wb') as f:
    with requests.get(url, stream=True) as r:
        shutil.copyfileobj(r.raw, f)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...