默认情况下,sys.stdin.read()
和sys.stdin.read(n)
阻止呼叫。我假设100%cpu的消耗实际上归因于将数据流式传输到脚本中或此处未引用的其他行为。
在查看的帮助文档时sys.stdin.read
,我注意到了这一点:
读(…)
read([size])->读取最大大小的字节,以字符串形式返回。
如果size参数为负或省略,请读取直到达到EOF。 ,即使没有给出size参数,返回的数据也可能少于请求的数据。
(强调我的。)
这意味着阻止模式是默认行为,这与我的经验一致。这也使我找到了关于SO的类似问题。Voila:在子进程上进行非阻塞读取.Python中的PIPE
祝您适应愉快!