Что мне нужно сделать, это прочитать файл по HTTP порциями (итерировать по строкам, чтобы быть точным).Я хочу , а не , чтобы прочитать весь файл (или большую его часть), а затем разбить его на строки, а вместо этого прочитать небольшой (<= 8 КБ) фрагмент, а затем разделить егов линии.Когда все строки в чанке заняты, тогда получите следующий чанк. </p>
Я попробовал следующее:
with urllib.request.urlopen(url) as f:
yield from f
Что не сработало.В Wireshark я вижу, что около 140 КБ из общего числа ~ 220 КБ получают, просто набрав urlopen(url)
.
Следующее, что я попробовал, было использовать requests
:
with requests.get(url, stream=True) as req:
yield from req.iter_lines()
, который также читаетоколо 140 КБ, просто позвонив get(url, stream=True)
.Согласно документации этого не должно происходить.Кроме этого, я не нашел никакой информации об этом поведении или о том, как его контролировать.Я использую запросы 2.21.0, CPython 3.7.3, в Windows 10.