python -u参数

2020年1月29日 / 31次阅读 / Last Modified 2020年1月29日
Python命令行

python -u参数的作用,是取消stdout和stderr的缓存,如果执行脚本中有向stdout和stderr的输出,无论在什么情况下,都不再有缓冲。

比如我的上一篇博文,实时获取subprocess子进程的输出,第2种方法就是使用python -u参数。

-u : force the stdout and stderr streams to be unbuffered;
this option has no effect on stdin; also PYTHONUNBUFFERED=x

在什么情况下,我们会明显感觉到缓冲的存在?我有点经验:(1)使用subprocess创建的子进程的输出;(2)创建在后台运行的nohup进程

print函数的flush参数,也可以取消缓冲:

>>> print('abcde', flush=True)
abcde

默认情况下,stdout.flush函数也有此效果:

>>> import sys
>>> sys.stdout.write('abcde')
abcde5
>>> sys.stdout.flush()

-- EOF --

本文链接:https://www.pynote.net/archives/1759

留言区

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top