2016-08-01 22 views
3
print 'foo', 
time.sleep(1) 
print 'bar' 

これは最初にtime.sleep(1)を実行してから、"foo bar"を一度に印刷するようです。同じライン印刷の間に遅延がないのはなぜですか?

はしかし、独自のライン上foobarの両方を印刷するprint文の間に予想遅延を生成します。

print 'foo' 
time.sleep(1) 
print 'bar' 

は、改行文字が受信されるまで、すべてのprint文をスタック何かはありますか?

答えて

7

printデフォルトでは、sys.stdoutに出力され、行バッファリングされます。あなたは、参照

import time 
import sys 

print 'foo' 
sys.stdout.flush() 
time.sleep(1) 
print 'bar 

print文の後に毎回バッファフラッシュできます sys

も読み:How to flush output of Python print?

+0

は '-u'が同様のトリックを行うとのpythonを実行しているように見えます – victor

関連する問題