Python 循环打印进度-空闲与终端

Python 循环打印进度-空闲与终端,python,python-2.7,Python,Python 2.7,我写了一个脚本,在某个时候我想打印出来 循环的进程。 我要的不是逐行打印,而是当前的 在每次迭代中要覆盖的行。 问题是,如果我从终端执行脚本,它工作得很好,但是如果我在空闲状态下运行脚本,它总是以一种速度打印进度 新线 这只是出于好奇,我想知道为什么这两个 表现不同 下面是代码的简化示例: import time import sys max_iter = range(5) for i in max_iter: prog = (i + 1) / float(len(max_iter

我写了一个脚本,在某个时候我想打印出来 循环的进程。 我要的不是逐行打印,而是当前的 在每次迭代中要覆盖的行。 问题是,如果我从终端执行脚本,它工作得很好,但是如果我在空闲状态下运行脚本,它总是以一种速度打印进度 新线

这只是出于好奇,我想知道为什么这两个 表现不同

下面是代码的简化示例:

import time
import sys

max_iter = range(5)

for i in max_iter:

    prog = (i + 1) / float(len(max_iter))
    sys.stdout.write("\r {}%".format( prog * 100 ) )
    sys.stdout.flush()
    time.sleep(1)

那是因为终端不同。空闲终端无法“倒带”线路。Ok和ILDE通常不能这样做;也不能使用不同的解决方案?如果需要,可以使用
%
操作符,不打印任何项目,而是每10%打印一次。因此,您仍然可以在不重载终端的情况下了解进度。看看这是一个很棒的进度条库!你读过吗?