print 作为python中最常用的一个函数,其实是有一个小问题的,就是默认情况下,python的print是启用了stdout缓冲的,这意味着在某些情况下,你的输出可能不会被立刻打印出来,而是会被存在缓冲区中,等待某个契机被触发打印。
这就造成了python的打印延时问题,小问题,但是很烦人
解决方案有两种:
- 每次print之后,都调用stdout的flush()函数,把缓冲区手动打印出来,但是这样太麻烦了;
- 使用命令行参数
-u
来启动python,即通过python -u xxx.py
来执行脚本,这样子会禁用stdout缓冲,输出可以被立即打印。
可以查阅参考文献2,博主描述了下关于缓冲区的几个概念。
参考文献: