gpt4 book ai didi

python - Python如何读取打开后删除的文件

转载 作者:IT王子 更新时间:2023-10-29 00:46:19 26 4
gpt4 key购买 nike

当文件被打开后被删除时,我很难理解 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

最佳答案

与 Python 无关。在 C、Fortran 或 Visual Cobol 中,只要代码从 open 系统调用获取句柄,您就会有相同的行为。

在 Linux/Unix 系统上,一旦进程拥有文件的句柄,它就可以读取它,即使文件已被删除。有关更多详细信息,请查看 that question (我不确定这样做是否可以,似乎可以)

在 Windows 上,只要文件被进程锁定,您就无法删除该文件。

关于python - Python如何读取打开后删除的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40148622/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com