如何在python(2.7)中从stdin执行阻塞读取操作,暂停进程直到管道中出现一些数据?
read()
的问题在于,第一次返回后,read()
不再阻止。例如:
echo 'test test ' | python test.py
# test.py
import sys
while True:
string = sys.stdin.read() # Blocks only for the first time
print '!!!!!!!!'
答案 0 :(得分:1)
f.read()
阻止,但如果达到EOF,则返回空字符串。您的示例已中断,因为输入流已关闭且已达到EOF。您也很可能想要阅读整行,因此readline
是合适的。