2014-02-11 65 views
2

我寫了一個監視中斷下載的服務器應用程序。現在我想用python創建一個測試用例。到目前爲止,我已經想出瞭如何下載整個頁面。但是,如何讓程序在完成之前或特定數量的下載字節後停止下載?這裏是我的一個完整的下載代碼...中斷urllib.read

opener = urllib2.build_opener() 
response = opener.open(TARGET_URL) 
data = response.read() // how to interrupt before completion? 

回答

1

呼叫read()加上一個數字參數大於內容的尺寸,然後斷開連接:

>>> import urllib2 
>>> opener = urllib2.build_opener() 
>>> response = opener.open('http://downloads.raspberrypi.org/NOOBS_latest') 
>>> response.read(4) 
'PK\x03\x04' 
>>> response.close() 

這並不能保證它將從服務器讀取正好四個字節,但如果其內容足夠大(對於「足夠大」的某些定義),它將不會獲取整個URL。