程序一次连续打印到标准输出一行。
我试图在输入时一次读取和处理一行,而不必等待程序完成。
例如,下面的writeOutput.py一次写一行到stdout(在1到3秒之间的每一行之间等待)。
调用./writeOutput.py | ./processEachLine.py
需要writeOutput.py才能在processEachLine.py开始处理第一行之前完成。
有没有在python中实现这一点?即使在python程序中直接调用writeOutput.py而不是使用管道?
任何帮助都将受到高度赞赏。
writeOutput.py
#!/usr/bin/env python
import random
import time
i = 0
while i < 5:
n = int(1 + (random.random()*10) % 3)
i += 1
time.sleep(n)
print(str(n) + " test")
processEachLine.py
#!/usr/bin/env python
import sys
while 1:
line = sys.stdin.readline()
if not line:
break
print(">>" + line)
答案 0 :(得分:3)
而不是
#!/usr/bin/env python
使用
#!/usr/bin/env python -u