当您输出到管道时,Python缓冲写入的
sys.stdout输出,并在刷新,溢出,关闭后(程序退出时)输出。虽然它将缓冲打印调用,但系统调用输出将直接输出到stdout中,并且其输出将不会被缓冲。这就是为什么您会看到这样的优先级。为了避免这种情况,请使用
python-u:
python -u test.py > test.out; cat test.out
编辑 :有关何时将刷新缓冲区的说明。

当您输出到管道时,Python缓冲写入的
sys.stdout输出,并在刷新,溢出,关闭后(程序退出时)输出。虽然它将缓冲打印调用,但系统调用输出将直接输出到stdout中,并且其输出将不会被缓冲。这就是为什么您会看到这样的优先级。为了避免这种情况,请使用
python-u:
python -u test.py > test.out; cat test.out
编辑 :有关何时将刷新缓冲区的说明。