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