我不确定(1)。
至于(2),我相信Python会在每一行后刷新到stdout。但是,如果将stdout重载为文件,它是否会经常刷新?
对于文件操作,除非你另行配置,否则Python使用操作系统的默认缓冲。你可以指定缓冲区大小,未缓冲或行缓冲。
例如,open函数采用缓冲区大小参数。
http://docs.python.org/library/functions.html#open
“可选的缓冲参数指定文件的所需缓冲区大小:”
码:
bufsize = 0 f = open('file.txt', 'w', buffering=bufsize)