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 不是无缓冲的么,不应该直接就输出出来在最前面么?
