import sys
sys.stdout.write("stdout1 ")
sys.stderr.write("stderr1 ")
sys.stdout.write("stdout2 ")
sys.stderr.write("stderr2 ")
print()
string = ""
for i in range(10):
string = string + str(i) + "\n"
print(string)
在使用 python test.py 执行时,应该是有开启缓冲区的,不加上后面的 print 部分,输出顺序是 stderr1 stderr2 stdout1 stdout2
但是为什么加了后面的 print 部分输出变成了
stdout1 stdout2
0
1
2
3
4
5
6
7
8
9
stderr1 stderr2
stderr 不是无缓冲的么,不应该直接就输出出来在最前面么?