阻止从 python 中的标准输入读取

Blocking read from stdin in python

如何从 python (2.7) 中的标准输入执行阻塞读取操作以暂停进程直到管道中出现一些数据?

read() 的问题在于,在第一次 returns 之后,read() 不再阻塞。示例:

echo 'test test ' | python test.py

# test.py
import sys
while True:
  string = sys.stdin.read() # Blocks only for the first time
  print '!!!!!!!!'

f.read() 块,但如果达到 EOF,也会 returns 一个空字符串。您的示例已损坏,因为输入流已关闭并且已到达 EOF。此外,您很可能想阅读整行,因此 readline 是合适的。