Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中解冻请求下载文件?_Python_Python Requests - Fatal编程技术网

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

如何在python中解冻请求下载文件?,python,python-requests,Python,Python Requests,我编写了一个python脚本,可以从internet下载文件。然而,每次我运行脚本时,我的计算机似乎都被冻结了 代码: 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)

我编写了一个python脚本,可以从internet下载文件。然而,每次我运行脚本时,我的计算机似乎都被冻结了

代码:

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.

如果我是你,我会增加块大小,并为底层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

如果这没有帮助,那么您的系统/代码中的问题就比这一部分更深。

如果我是您,我会增加块大小,并为底层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

如果这样做没有帮助,那么您的系统/代码中的问题就比这一部分更严重。

可能是您的计算机无法访问该站点,并且因为我认为get()是一个阻塞调用,所以这可能看起来像是冻结的。你能给我们看更多的代码吗?你有任何证据证明你正在访问你试图下载的站点吗?python不是C。你的计算机似乎冻结的原因是因为你有一个非常紧密的循环,没有退出。这是你真正的代码吗?为什么不在执行脚本之前从shell控制你的资源,例如,在linux中,
nice
cpulimit
可以控制您的资源作为e4c5状态,上面的代码不会退出,所以它可能只会在键盘中断后终止?另请参见以下问题和答案。看起来是你想做的+@zwer的答案是1,但如果你想加快速度,试试这个:可能是你的计算机无法访问该站点,而且因为我认为get()是一个阻塞调用,这可能看起来像是冻结了。你能给我们看更多的代码吗?你有任何证据证明你正在访问你试图下载的站点吗?python不是C。你的计算机似乎冻结的原因是因为你有一个非常紧密的循环,没有退出。这是你真正的代码吗?为什么不在执行脚本之前从shell控制你的资源,例如,在linux中,
nice
cpulimit
可以控制您的资源作为e4c5状态,上面的代码不会退出,所以它可能只会在键盘中断后终止?另请参见以下问题和答案。看起来是你想做的+@zwer的答案是1,但如果您想加快速度,请尝试以下方法: