是否可以在python中的try块中添加超时

时间:2017-08-24 09:07:35

标签: python try-except

我正在尝试使用从以下位置下载的python-wget下载URL: https://pypi.python.org/pypi/wget

此程序包不支持超时选项,因此大致需要一些时间(大约10秒)才能使查询失败。是否可以在try块中添加超时以减少函数的等待时间。

这样的事情:

try(timeout=5s):
     wget.download(URL)
except:
    print "Query timed out"

1 个答案:

答案 0 :(得分:3)

最简单的方法(即如果download不支持超时并且你不能修改代码)来实现这一点是通过在另一个线程中运行代码:

from threading import Thread

t = Thread(target=wget.download, args=(URL,))
t.daemon = True
t.start()
t.join(5)
if t.is_alive():
    print 'Timeout'