我在理解Python如何读取一个已被删除的文件时遇到了困难,以下是代码:
>>> import os
>>> os.system('cat foo.txt')
Hello world!
0
>>> f
<_io.TextIOWrapper name='foo.txt' mode='r' encoding='UTF-8'>
>>> os.system('rm -f foo.txt')
0
>>> os.system('cat foo.txt')
cat: foo.txt: No such file or directory
256
>>> f.read()
'Hello world!\n'
>>>
文本模式和二进制模式得到的结果相同。
我还尝试了读取大小超过1GB的大文件,即使在它们被删除之后也能够读取。即使是对于非常大的文件,open
函数的操作几乎是立即完成的。
如果一个打开的文件不存在了,Python 从哪里获取数据呢?
我在以下环境下进行了测试:
python 3.4.3 / 3.5.2
ubuntu 14.04 / 16.04