2017-08-24 132 views
2

我试图使用python-的wget从下载到下载URL添加超时在try块: https://pypi.python.org/pypi/wget是否有可能在python

这个包不支持超时选项,因此它需要一些时间(大约10秒)大致为查询失败。是否可以在我们的try块中添加一个超时来减少函数的等待时间。

事情是这样的:

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

这是不可能的。确保'download'函数接受超时,或使用多线程。 – tilz0R

+1

不,但如果你想要的只是一个超时,还有其他的方法:https://stackoverflow.com/questions/492519/timeout-on-a-function-call –

回答

2

最简单的方法(即如果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'