[英]Python - Reading from a text file that is being written in Windows
我正在使用Windows 7,Python 2.7。 我试图在一个程序中写入具有一个文件ID的文本文件,该程序将继续写入新数据/编号几分钟。
在另外一个程序中,开始写入后,我试图从正在写入的文件中读取数据,以便更新和绘制文件中的数据。
当第一个程序正在写入数据时,我无法读取数据,直到完成为止。 这是一些示例代码来说明我的观点:
程序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()
时省略该模式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.