คำขอเป็นห้องสมุดที่ดีจริงๆ ฉันต้องการใช้เพื่อดาวน์โหลดไฟล์ขนาดใหญ่ (> 1GB) ปัญหาคือมันเป็นไปไม่ได้ที่จะเก็บไฟล์ทั้งหมดไว้ในหน่วยความจำฉันต้องอ่านมันเป็นชิ้น ๆ และนี่เป็นปัญหาของรหัสต่อไปนี้
import requests
def DownloadFile(url)
local_filename = url.split('/')[-1]
r = requests.get(url)
f = open(local_filename, 'wb')
for chunk in r.iter_content(chunk_size=512 * 1024):
if chunk: # filter out keep-alive new chunks
f.write(chunk)
f.close()
return
ด้วยเหตุผลบางอย่างมันไม่ทำงานด้วยวิธีนี้ มันยังโหลดการตอบสนองลงในหน่วยความจำก่อนบันทึกลงในไฟล์
UPDATE
หากคุณต้องการลูกค้าขนาดเล็ก (หลาม 2.x /3.x) ซึ่งสามารถดาวน์โหลดไฟล์ขนาดใหญ่จาก FTP, คุณสามารถค้นหาได้ที่นี่ มันรองรับมัลติเธรด & เชื่อมต่อใหม่ (มันเชื่อมต่อจอภาพ) และยังปรับซ็อกเก็ตสำหรับงานดาวน์โหลด