2017-08-24 199 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'