【发布时间】:2014-08-08 10:38:12
【问题描述】:
我得到了一个应该从标准输入读取的简单 python 脚本。 因此,如果我将程序的标准输出重定向到我的 python 脚本的标准输入。
但我的程序记录到 python 脚本的内容只有在记录这些内容的程序被杀死时才会“到达”python 脚本。
但实际上,我希望在程序可用时立即处理程序记录的每一行,而不是在我应该 24/7 实际运行的程序退出时处理。
那么我怎样才能做到这一点呢?如何让标准输入在处理数据之前不等待 CTRL+D 或 EOF?
例子
# accept_stdin.py
import sys
import datetime
for line in sys.stdin:
print datetime.datetime.now().second, line
# print_data.py
import time
print "1 foo"
time.sleep(3)
print "2 bar"
# bash
python print_data.py | python accept_stdin.py
【问题讨论】: