2012-09-25 91 views
0

可能重複:
How do I check if a file exists using Python?Python的if語句錯誤處理

我有點初學者學習Python,但我得到這個代碼位,我希望的方式來處理如果有人輸入一個無效的路徑,而不是像Z:\那樣存在,而不是C:\我想要它引發某種錯誤,現在我知道如何去做,我只是不知道如何檢查它會無效?比如我怎樣才能讓我的代碼檢查,如果該驅動器或路徑存在於這臺PC之前,它創建的路徑,有沒有辦法做到這一點在python中?

website_path = input("\nEnter the absolute path for your website: ") 

任何意見將是偉大的,謝謝。

+0

爲什麼downvote沒有評論?這是一個剛剛起步的人的一個很好的問題。它提出了是否測試或除了 –

+1

@JasonMorgan的基本精神這個問題很少顯示自己的研究成果。標題和標籤與實際問題沒有直接關係。身體格式化並不能很容易地識別實際的問題。我可以理解某人敢如何低估這一點。 – moooeeeep

回答

5

處理此問題的Pythonic方法是「請求原諒,而不是權限」:只是嘗試在您獲得的路徑上執行任何操作(如打開文件)並讓您調用的函數提升適合你的例外。然後使用exception handling使錯誤消息更加用戶友好。

這樣,您就可以及時完成所有檢查。事先檢查是不可靠的;如果您在其他進程刪除文件之前檢查文件是否存在,該怎麼辦?

+0

或者你可以將輸入語句放到一個循環中,然後使用os.path.exists(),但是答案在更多Pythonic方法中是正確的。 –

+0

@JasonMorgan:它甚至是更強大和更安全的方式。查看擴展答案的理由。 –

2

我想你正在尋找這樣的東西。你可以使用try和except來測試事情是否會起作用。您也可以處理except塊下的特定例外。 (我確信urlopen會在失敗時返回一個)

from urllib import urlopen 
website_path = raw_input("\nEnter the absolute path for your website: ") 
try: 
    content = urlopen(website_path).read() 
    print "Success, I was able to open: ", website_path 
except: 
    print "Error, Unable to open: " , website_path