2012-04-23 72 views
2

遠程服務器上的文件大小通常由內容長度標頭報告,但它不可靠。有時它會丟失,偶爾它會被誤報。我不想完全依賴這個頭來確定我的代碼是否應該下載一個URL。Python:如果文件太大,終止文件下載

有沒有辦法在下載文件時監視文件的大小,如果超過最大大小就終止下載?

回答

4

你可以做的是讀取你想要的最大文件大小,然後檢查是否有更多的字節被讀取通過做一個更多的讀。像這樣:

resp = urllib2.urlopen('http://www.google.com') 
file_read = resp.read(max_wanted_size) 
if resp.read(1) != '': 
    #file is bigger than expected code 
+0

這會強制讀取'max_wanted_size'。沒有辦法讀取EOF *或*'max_wanted_size'? – knutole 2012-11-27 04:14:13

+2

它讀取EOF或'max_wanted_size',先來看看。 – 2012-11-27 18:56:11