我已经写了一块蛋糕,显示它在OSX和Linux shell上按预期工作的进度。今天我在Windows上测试它没有从shell中刷新最后一个转储文本。
done = int(50 * progress / int(file_size))
percentDone = int(progress) * 100. / file_size
speed = sizeof(progress//(clock() - start))
bar = '=' * done
die = ' ' * (50-done)
stdout.write("\r[%s%s][%3.2f%%] %s of %s at %s/s " % (bar, die, percentDone, sizeof(progress), sizeof(file_size), speed))
stdout.flush()
以上代码来自where I am contributing here
它就像OSX上的魅力一样:
但是如果将每个进度转储到下一行,则保留上一行。
如何在Windows上实现stdout.flush()
的功能?
答案 0 :(得分:0)
你试过用“\ r”吗?如果只有一条线路发生变化,那么它可能是您的解决方案 它的工作原理如下:
>>> print("Hello\rP")
<<< Pello