如何在python中解冻请求下载文件?

时间:2017-06-14 12:58:30

标签: python python-requests

我编写了一个从互联网上下载文件的python脚本。但是每次我运行脚本时,似乎我的计算机都被冻结了。

代码:

response = requests.get(url, stream=True)

with open(local_filename, 'wb') as f:
     for chunk in response.iter_content(chunk_size=2048):
         if chunk:  

              f.write(chunk)

              f.flush()

我该怎么做才能加载这样我的电脑不会冻结?

我应该分配有限数量的ram吗?或者我应该创建一个线程来执行此操作?

任何建议都将不胜感激。 TY。

1 个答案:

答案 0 :(得分:2)

如果我是你,我会增加块大小并为底层I / O线程增加一些喘息空间,所以:

import time

response = requests.get(url, stream=True)

with open(local_filename, 'wb') as f:
    for chunk in response.iter_content(chunk_size=1024*1024):  # lets use 1 meg chunks
        if chunk:  
            f.write(chunk)
            f.flush()
        time.sleep(0.05)  # 50ms delay won't kill anyone

如果这没有帮助,那么您的系统/代码中存在的问题比这篇文章更深层。