2015-10-13 82 views
0

我正在使用Windows 7,Python 2.7。我正试图在一个程序中写入一个带有一个文件ID的文本文件,该程序将继续写入新的数据/数字几分钟。Python - 从正在Windows中编写的文本文件读取

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

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

计划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完成之前查看任何更改。

有没有办法解决这个问题?我需要保持阅读和写作两个单独的程序。

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

你可以尝试的另一件事是运行在程序缓冲模式的Python解释器:

回答

0

这可以通过在程序1.缓冲你可以尝试每次写入后冲洗程序1的输出造成的1.使用python -u选项。

此外,您是否需要在程序2中打开文件进行更新(模式为r+)?如果您只是想读取它,模式r就足够了,或者您可以在拨打open()时省略该模式。

+0

太棒了! fid.flush()可以做到这一点。非常感谢! – grover