我有一個簡單的Python程序:使用Python POPEN閱讀的最後一行
test.py:
import time
for i in range(100000):
print i
time.sleep(0.5)
我想用另一個程序,執行順序讀取最後的一個以上在上述程序正在計數的同時輸出線路。
import subprocess
process = subprocess.Popen("test",stdout=PIPE)
sleep(20) # sleeps an arbitrary time
print stdout.readlines()[-1]
問題是process.stdout.readlines()
一直等到test.py結束執行。 有沒有什麼方法可以在程序執行時讀取輸出中寫入的最後一行?
如果你的「試驗」方案還用Python編寫的,你應該考慮使用線程,並從一個側面傳遞信息給其他的,而不是打印和讀取文件。 .. – JBernardo
@Jernardo感謝您的建議,但我即將嘗試實現的是讓它適用於任何程序。 –