I'm having difficulties in understanding the concept of how Python reads a file when it was deleted after being open
'ed. Here is the code:
>>> 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'
>>>
Text and binary modes give the same result.
I tried this also for big files with more than 1Gb size and they were also read after being deleted. The operation of open
happens almost instantaneously even for very big files.
From where does Python get the data if an open file does not exist anymore?
I ran this test on
python 3.4.3 / 3.5.2
ubuntu 14.04 / 16.04