Python3 -u参数详解

sys.stdout.write():python中调用print时,事实上调用了sys.stdout.write(obj+'\n')

Python 中标准输出stdout默认需要缓存后再输出到屏幕,只有遇到换行或积累到一定大小才会输出。

而标准错误stderr则直接输出。

1
2
3
4
5
6
import sys

sys.stdout.write("stdout1")
sys.stderr.write("stderr1")
sys.stdout.write("stdout2")
sys.stderr.write("stderr2")

如上代码运行结果为:

1
stderr1stderr2stdout1stdout2

-u 参数强制标准输出跟标准错误一样,不通过缓存直接打印至屏幕。一般在处理运行 Python 脚本的日志问题时需要注意到这点。更换成 python -u就正常按照语句的顺序来打印了

1
2
3
4
python temp.py
stderr1stderr2stdout1stdout2
python -u temp.py
stdout1stderr1stdout2stderr2

Python3 -u参数详解
https://zhouyinglin.cn/post/a5bc3b74.html
作者
小周
发布于
2023年4月3日
更新于
2023年4月3日
许可协议