我想将 stdout 从 python 传输到另一个程序,但我遇到了一个问题,我的 stdout 没有通过管道传输。
我已将其简化为一个简单示例:
import time
while True:
print("Hello!")
time.sleep(1)
我用 cat 像这样检查它:
./my_python_script.py | cat
然后我什么也得不到。
奇怪的是,如果我删除 sleep 命令,它就可以正常工作。但是,我不想那么快地通过管道传输输出,所以我真的很想睡一会。
我检查了相应的 bash 脚本:
while true; do
echo "Hello!"
sleep 1
done
这也很有魅力。那么关于为什么 python 脚本没有按预期管道输出的任何想法?谢谢!
最佳答案
您需要刷新标准输出:
import time
import sys
while True:
print("Hello!")
sys.stdout.flush()
time.sleep(1)
关于python - 无法将 python 输出通过管道传递给程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39212541/