Как в Python скачать файл прямо на диск?

Есть такая конструкция, которая качает файл и сохраняет локально на диск.
open(os.path.join(savepath(out_file_name)), 'wb').write(urllib2.urlopen(download_url + out_file_name).read())


При загрузке файла он качается в оперативную память, а после окончания загрузки кладется на локальный диск. Дело в том, что файл достаточно большой и может вырасти. Как можно качать файл и сразу сохранять на диск без активного использования RAM?
  • Вопрос задан
  • 9545 просмотров
Решения вопроса 3
@deliro
Ну или так.
import requests

with open(os.path.join(savepath(out_file_name)), 'wb') as out_stream:
    req = requests.get(download_url + out_file_name, stream=True)
    for chunk in req.iter_content(1024):  # Куски по 1 КБ
        out_stream.write(chunk)
Ответ написан
Комментировать
@idap
интересуюсь python, latex, linux, ML, AI
Примерно так:

nbytes = 100 # читаем по 100 байт
with open(os.path.join(savepath(out_file_name)), 'wb') as out_stream,\
     urllib2.urlopen(download_url + out_file_name) as in_stream:
    while True:
        chunk = in_stream.read(nbytes)
        if chunk == '':
            break
        out_stream.write(chunk)
Ответ написан
Комментировать
@janitor-rb
python developer
самый простой:

import urllib
urllib.urlretrieve('https://toster.ru/q/216339', 'out.txt')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
11 мая 2024, в 00:19
1000 руб./за проект
10 мая 2024, в 23:51
30000 руб./за проект
10 мая 2024, в 23:33
2500 руб./за проект