2013-02-28 33 views

回答

4

它的記錄正好遇上top of the section on file objects

當一個I/O相關原因,文件操作失敗,異常IOError提高。這包括由於某種原因沒有定義操作的情況,如tty設備上的seek()或寫入打開以供讀取的文件。

它之所以沒有提到每一個方法的例外是,它是相同的異常(IOError)所造成的一個IO相關的原因,所有的file方法錯誤。

你可以找出IO錯誤的基礎上,錯誤號碼,可以如下提取類型:

try: 
    f = open("nosuchfile.txt") 
except IOError as e: 
    print e.errno 

這些錯誤數據來自OS,而不是從Python的。在上述情況下,它會打印2,因爲No such file or directory是錯誤2. No space left on device通常是錯誤28,儘管它可能取決於操作系統。

+0

謝謝。我想知道不同的故障模式是什麼。例如,如果由於某種原因我無法寫入該文件,我將啓動一個新文件。但是,如果我的磁盤空間不足,我會放棄所有的一切。有沒有區分這些失敗的方法? – Alex 2013-02-28 05:18:41

+1

@alex:請參閱編輯 – 2013-02-28 05:27:16