无法将python输出传递给程序

时间:2016-08-29 18:11:21

标签: python linux

我想将stdout从python传输到另一个程序,但我正面临一个问题,即我的stdout没有用管道传输。

我把它简化为一个简单的样本:

import time

while True:
    print("Hello!")
    time.sleep(1)

我像猫一样检查它:

./my_python_script.py | cat

然后我一无所获。

奇怪的是,如果我删除sleep命令它会正常工作。但是,我不想快速输出输出,所以我真的想睡一会儿。

我查看了相应的bash脚本:

while true; do
    echo "Hello!"
    sleep 1
done

这也像魅力一样。所以任何想法为什么python脚本不按预期管道输出?谢谢!

1 个答案:

答案 0 :(得分:5)

你需要刷新标准输出:

import time
import sys

while True:
    print("Hello!")
    sys.stdout.flush()
    time.sleep(1)