首先要清楚python中的print语句就是调用sys.stdout.write()
print '就这'
//相当于
sys.stdout.write('就这'+'\n')
然后python还有一种输出是sys.stderr.write()
stdout是其标准输出
stderr是标准错误
python缓存机制,虽然stderr和stdout默认都是指向屏幕的,但是stderr是无缓存的,程序往stderr输出一个字符,就会在屏幕上显示一个;而stdout是有缓存的,只有遇到换行或者积累到一定的大小,才会显示出来。
import sys
sys.stdout.write("stdout1")
sys.stderr.write("stderr1")
sys.stdout.write("stdout2")
sys.stderr.write("stderr2")
输出结果:
stderr1stderr2stdout1stdout2
- -u参数的使用:python命令加上-u(unbuffered)参数后会强制其标准输出也同标准错误一样不通过缓存直接打印到屏幕。
加上-u运行 运行结果:
stdout1stderr1stdout2stderr2