Python打印在长期任务之前无法正常工作

时间:2012-12-12 23:19:34

标签: python

我有一个制作许多(数十万)个文件的脚本,我希望这样:

from __future__ import print_function

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

由于end = "",我希望在长任务之前显示Generating...,并在完成时将其更改为Generating... Done。但是,第一个print()直到doStuff()完成后才会显示,紧接在第二个print()之前。 time.sleep(1) doStuff()之前{{1}}没有做任何事情,但无论如何它都不是永久的解决方案。

2 个答案:

答案 0 :(得分:1)

您需要定期刷新sys.stdout以显示字符:

import sys

print 'Working',

while working():
    work()

    print '.',

    sys.stdout.flush()

print 'Done'

答案 1 :(得分:0)

您的解释器可以缓冲输出。运行“python -u yourfile.py”应该可以解决这个问题。