在speaker.py
,我用print
輸出文本到STDOUT
:如何編寫適用於Linux管道的Python腳本?
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 listener.py
但是listner.py
什麼都不輸出。
怎麼了?
當標準輸出是一個tty,它是行緩衝。當它是別的東西時,它被塊緩衝。要麼顯式刷新緩衝區,要麼使用行緩衝重新打開標準輸出。 –