在python中阻止从stdin读取

时间:2017-02-04 22:20:09

标签: python io stdin blocking

如何在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 '!!!!!!!!'

1 个答案:

答案 0 :(得分:1)

f.read()阻止,但如果达到EOF,则返回空字符串。您的示例已中断,因为输入流已关闭且已达到EOF。您也很可能想要阅读整行,因此readline是合适的。