2014-10-31 58 views
0

我正在製作一個python應用程序,我想從網上讀取一個文件。 這是我使用讀它的代碼:Python - urllib2>如何轉義HTTP錯誤

urllib2.urlopen("http://example.com/check.txt").read() 

一切都很正常,但是當我將它指向一個網址不存在的,它給了HTTP 404:未找到錯誤,這是正常的。

問題是,該應用程序被設計爲在Windows上工作,因此,它將被編譯。 在Windows上,當應用程序試圖從不存在的url中獲取文件時,該應用程序將壓縮並給出錯誤窗口+它會創建一個包含HTTP 404的日誌:未找到錯誤。

我試圖逃避這個錯誤,但我失敗了。這是完整的代碼:

import urllib2 

file = urllib2.urlopen("http://example.com/check.txt") 

try: 
    file.read() 
except urllib2.URLError: 
    print "File Not Found" 

else: 
    print "File is found" 

請,如果你知道如何逃避這個錯誤,幫幫我。

+0

上'了urllib.urlopen(...)'出現的錯誤(這是* *之外的'try')** **不上'file.read()' (永遠不會到達)。 – jonrsharpe 2014-10-31 19:23:07

+0

把'urllib2.urlopen(...)'裏面試試 – Hackaholic 2014-10-31 19:25:32

+0

謝謝兄弟們的幫忙。我現在可以通過嘗試@karthikr提供的解決方案來解決此問題。 – 2014-10-31 19:45:41

回答

0

您應該在urlopen周圍應用try..except,而不是讀取。

試試這個

import urllib2 
try: 
    fh = urllib2.urlopen('http://example.com/check.txt') 
    print fh.read() 
except urllib2.HTTPError, e: 
    print e.code 
except urllib2.URLError, e: 
    print e.code 
+0

謝謝布羅。你的解決方案完美無缺 – 2014-10-31 19:43:46