https://blog.csdn.net/abcd1f2/article/details/53322934
當使用requests的get下載大文件/數據時,建議使用使用stream模式。
當把get函數的stream參數設置成False時,它會立即開始下載文件並放到內存中,如果文件過大,有可能導致內存不足。
當把get函數的stream參數設置成True時,它不會立即開始下載,當你使用iter_content或iter_lines遍歷內容或訪問內容屬性時纔開始下載。需要注意一點:文件沒有下載之前,它也需要保持連接。
- iter_content:一塊一塊的遍歷要下載的內容
- iter_lines:一行一行的遍歷要下載的內容
使用上面兩個函數下載大文件可以防止佔用過多的內存,因爲每次只下載小部分數據。
示例代碼:
r = requests.get(url_file, stream=True)
f = open("file_path", "wb")
for chunk in r.iter_content(chunk_size=512):
if chunk:
f.write(chunk)