我创建了一个空文件,如下所示:
touch foo.txt
然后,我打开了一个Python交互式会话,并输入了以下内容:
>>> f = open("foo.txt", "w")
>>> print("Hello", file=f)
这时,在另一个终端中,我键入了以下内容:
rm foo.txt
现在,回到Python交互式会话中,我输入:
>>> print("World", file=f)
这没有给出错误。为什么不?此时的文件已被删除。那它仍然如何工作?
然后,我在同一Python交互式会话中尝试了以下操作:
>>> f.close()
>>> f = open("foo.txt")
现在,以上两个语句中的第二个给出了错误,提示“没有此类文件或目录'foo.txt'”。为什么现在出现错误?如果在执行rm命令后文件仍然存在,为什么尝试打开文件失败?
答案 0 :(得分:1)
打开文件时,该文件会加载到open file table中 此表存在于计算机内存(RAM)中,之后,对该文件所做的所有修改仅保存到该表中加载的同一文件中,而不是磁盘上的那个文件中,即使您从磁盘中删除该文件后,该文件仍然存在在打开的文件表中。希望这可以使图片更清晰。