Python sys.stderr刷新频率
sys.stderr刷新其缓冲区的频率是多少,并且在不同的环境中是否是这个标准?
>>> import sys
>>> sys.__stderr__
<open file '<stderr>', mode 'w' at 0x2b4fcb7ac270>
我发现它只是一个标准的文件类型,但我不知道缓冲应该是什么值。 dir()
似乎也没有产生任何有用的信息。
在Python 2中,我无法找到文件sys.stderr
的缓冲区的指定位置。 我期望在C中的stderr
与没有缓冲的(Windows除外)行为一样,我不知道c99标准是否要求它。 标准错误流在POSIX中没有完全缓冲。 -u
选项强制标准流在Python 2中无缓冲。
在Python 3上:
交互时,标准流是行缓冲的。 否则,它们像常规文本文件一样被块缓冲。 您可以使用-u
命令行选项覆盖此值。
-u
命令行选项:
强制stdout和stderr流(可用作其buffer
属性)的二进制层未缓冲。 如果写入控制台,文本I / O层仍然是行缓冲区,如果重定向到非交互式文件,则文本I / O层将被缓冲区缓冲。