Python sys.stderr flush frequency
How often does sys.stderr flush its buffer, and is this standard among different environments?
>>> import sys
>>> sys.__stderr__
<open file '<stderr>', mode 'w' at 0x2b4fcb7ac270>
 I see that it is just a standard file type, but I don't know what value of buffering it's supposed to be.  dir() does not seem to yield any useful information either.  
 On Python 2, I can't find where in the documentation sys.stderr 's buffering is specified.  I'd expect the same behaviour as stderr in C that is unbuffered (except Windows) and I don't know whether c99 standard mandates it.  The standard error stream is not fully buffered in POSIX.  -u option forces standard streams to be unbuffered in Python 2.  
On Python 3:
 When interactive, standard streams are line-buffered.  Otherwise, they are block-buffered like regular text files.  You can override this value with the -u command-line option.  
 -u command-line option:  
 Force the binary layer of the stdout and stderr streams (which is available as their buffer attribute) to be unbuffered.  The text I/O layer will still be line-buffered if writing to the console, or block-buffered if redirected to a non-interactive file.  
上一篇: 最小距离的电梯算法
