0

私は多くの(数十万の)ファイルを作成するスクリプトを持っています、そして私はこのようなものを作りたいです:

from __future__ import print_function

print("Generating...", end = "")
doStuff()
print(" Done")

ので、長いタスクの前に表示され、終了したときに変更されることをend = ""期待しています。ただし、最初の表示は、完了後、2番目の直前まで表示されません。とにかく恒久的な解決策ではありませんが、以前は何もしません。Generating...Generating... Doneprint()doStuff()print()time.sleep(1)doStuff()

4

2 に答える 2

2

sys.stdout文字を表示するには、定期的にフラッシュする必要があります。

import sys

print 'Working',

while working():
    work()

    print '.',

    sys.stdout.flush()

print 'Done'
于 2012-12-12T23:21:28.480 に答える
0

出力をバッファリングするインタプリタが可能です。「python-uyourfile.py」を実行すると、それが修正されるはずです。

于 2012-12-12T23:22:36.467 に答える