Python - 从正在写入的文本文件中读取 Windows

Python - Reading from a text file that is being written in Windows

我正在使用 Windows 7,Python 2.7。我正在尝试在一个程序中写入一个具有一个文件 ID 的文本文件,该程序继续写入新 data/numbers 几分钟。

在一个单独的程序中,写入开始后,我试图从正在写入的文件中读取数据,以便更新和绘制文件中的数据。

当第一个程序正在写入数据时,我无法在它完成之前读取数据。下面是一些示例代码来说明我的观点:

程序 1:

import time

fid = open("test1.txt", "w+")

for i in range(0, 5):
    fid.write(str(i) + "\n")
    print(i)
    time.sleep(5)

fid.close()

程序 2:

fid = open("test1.txt", "r+")

dataList = fid.read().splitlines()
print(dataList)

fid.close()

在程序 1 处于 运行 时执行程序 2 不允许我在程序 1 完成之前看到任何更改。

有办法解决这个问题吗?我需要在两个单独的程序中保持读写。

这可能是由程序 1 中的缓冲引起的。您可以尝试在每次写入后刷新程序 1 中的输出:

fid.write(str(i) + "\n")
fid.flush()

您可以尝试的另一件事是 运行 程序 1 的 Python 解释器处于非缓冲模式。使用 python -u 选项。

另外,程序2中是否需要打开文件进行更新(模式r+)?如果只是想看,模式r就够了,或者调用open().

的时候可以省略模式