【发布时间】:2017-06-14 12:58:29
【问题描述】:
我编写了一个从互联网下载文件的 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()
我可以做些什么来加载它,这样我的电脑就不会死机?
我应该分配有限数量的内存吗?还是我应该创建一个线程来执行此操作?
任何建议将不胜感激。太棒了。
【问题讨论】:
-
可能是您的计算机无法访问该站点,并且因为我认为 get() 是一个阻塞调用,这可能看起来像是被冻结了。你能告诉我们更多的代码吗?您是否有任何证据表明您正在访问您尝试下载的网站?
-
好吧,python不是C。你的电脑出现死机的原因是因为你有一个非常紧密的循环,不会退出这是你的真实代码吗?
-
为什么不在你执行你的脚本之前从shell控制你的资源,例如在linux中
nice或者cpulimit可以控制你的资源 -
如e4c5所述,上面的代码不会退出,所以它可能只会在键盘中断后才会终止?另请参阅以下问题和答案。看起来是你想做的。 stackoverflow.com/questions/16694907/…
-
+1 表示@zwer 的答案,但如果你想加快速度,试试这个:stackoverflow.com/a/13973531/4386191