我有一个制作许多(数十万)个文件的脚本,我希望这样:
from __future__ import print_function
print("Generating...", end = "")
doStuff()
print(" Done")
由于end = ""
,我希望在长任务之前显示Generating...
,并在完成时将其更改为Generating... Done
。但是,第一个print()
直到doStuff()
完成后才会显示,紧接在第二个print()
之前。 time.sleep(1)
doStuff()
之前{{1}}没有做任何事情,但无论如何它都不是永久的解决方案。
答案 0 :(得分:1)
您需要定期刷新sys.stdout
以显示字符:
import sys
print 'Working',
while working():
work()
print '.',
sys.stdout.flush()
print 'Done'
答案 1 :(得分:0)
您的解释器可以缓冲输出。运行“python -u yourfile.py”应该可以解决这个问题。