【发布时间】:2012-11-14 10:04:12
【问题描述】:
使用python下载大文件时,我想设置一个时间限制,不仅是连接过程,还有下载。
我正在尝试使用以下 python 代码:
import requests
r = requests.get('http://ipv4.download.thinkbroadband.com/1GB.zip', timeout = 0.5, prefetch = False)
print r.headers['content-length']
print len(r.raw.read())
这不起作用(下载没有时间限制),正如文档中正确指出的那样:https://requests.readthedocs.org/en/latest/user/quickstart/#timeouts
如果可能的话,那就太好了:
r.raw.read(timeout = 10)
问题是,如何给下载设置时间限制?
【问题讨论】:
-
我并不提倡这是最好的解决方案,但这里有一个使用信号对函数调用设置时间限制的通用解决方案:stackoverflow.com/a/601168/471671。这是一个杂项,除非没有更优雅的解决方案,否则我不建议使用它。
-
是的,信号不是一个选项,因为stackoverflow.com/a/1114567/389463
标签: python python-requests urllib3