【发布时间】:2012-10-31 04:21:42
【问题描述】:
我有一个简单的python程序:
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 感谢您的建议,但我试图归档的是让它适用于任何程序。
标签: python stream subprocess pipe