2015-10-13 83 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