在 speaker.py
中,我使用 print
将文本输出到 STDOUT
:
import time
while True:
time.sleep(1)
print("hello")
在 listener.py
中,我使用 input
从 STDIN
读取:
while True:
line = input()
if not line:
break
print(line)
我正在尝试用管道连接这两个脚本:
python speaker.py | python 监听器.py
但是 listner.py
没有输出。
怎么了?
最佳答案
本身并没有什么问题,但您遇到了缓冲问题。取出 sleep
,您应该会立即看到输出。
http://mywiki.wooledge.org/BashFAQ/009名义上是一个 Bash 问题,但适用于任何 Unix 类型的 I/O,并彻底解释了这些问题。
关于python - 如何编写适用于 Linux 管道的 Python 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32539314/