4

私のpythonコードでは:

print "Hello"
time.sleep(20)
print "world"

次の出力を期待しています

Hello 

そして20秒後

world

しかしHelloworldコンソールで同時に印刷しています。

4

3 に答える 3

5

printoperatorsys.stdoutは、バッファリングされる出力に stream を効果的に使用します。リアルタイム出力にsys.stderrは、バッファリングされていないストリームを使用する必要があります。

import sys, time
sys.stderr.write("Hello ")
time.sleep(20)
sys.stderr.write("world\n")

sys.stdout.flush()別の方法として、出力を取得するたびに呼び出して手動でストリーム バッファをフラッシュすることもできますが、自分が何をしているのかわからない限り、そのような方法では実行しないことをお勧めします。

詳細については、ウィキペディアに標準ストリーム (stdin、stdout、および stderr) に関する記事があります。

于 2013-05-13T12:08:52.880 に答える
1

あなたのコードは私のコンピューターで動作します。印刷後に直接stdoutをフラッシュすることができますhello

import sys
sys.stdout.flush()
于 2013-05-13T12:08:49.393 に答える