1
我執行以下操作:當文件被刪除時,文件句柄會發生什麼?
Fo=open ('file','w')
Fo.close()
Import os
Os. Remove('file')
Print fo.read()
上執行,我得到:ValueError異常:在關閉的文件I/O操作。
1)這意味着即使文件被刪除,python仍然可以識別文件句柄。它爲什麼這樣做?
2)爲什麼我得到ValueError?
3)在什麼情況下我們會得到IOError?
編輯:我想讓自己更清楚: 爲什麼我得到一個值的錯誤操作在一個封閉的文件? 我們一般得到ValueError異常的事情是這樣的:
int('abc')
當錯誤的值給出。在一個封閉的文件上運行似乎是與IO相關的東西。任何人都可以澄清?
對於1)是的,那是我的問題。爲什麼文件對象在文件被刪除後仍然存在? (我用'文件句柄'代替)保持它的目的是什麼? 3)你能舉個IOError發生的例子嗎? – Tinkidinki
1)因爲'file'對象仍然被變量'Fo'引用。它與「目的」無關,而與對象生命週期無關。您可以在使用之前檢查'closed'屬性 – mementum
3)執行'read'操作時硬盤無法訪問512bytes扇區 – mementum