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

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


При загрузке файла он качается в оперативную память, а после окончания загрузки кладется на локальный диск. Дело в том, что файл достаточно большой и может вырасти. Как можно качать файл и сразу сохранять на диск без активного использования RAM?
  • Вопрос задан
  • 6629 просмотров
Решения вопроса 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)
Ответ написан
@janitor-rb
python developer
самый простой:

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

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

Войти через центр авторизации
Похожие вопросы
26 февр. 2020, в 01:14
600 руб./в час
26 февр. 2020, в 01:13
1500 руб./за проект
25 февр. 2020, в 23:26
100000 руб./за проект