繁体   English   中英

Python-从Windows中编写的文本文件读取

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM