如何更新数字而不更改行或输出的位置

时间:2012-03-27 17:48:02

标签: python python-2.7

我想在不更改程序输出中的位置的情况下更新数字。我将如何仅使用python 2.7.2的标准库中包含的内容来完成此操作?

例如,我希望输出如下:

working on: 9

并改为:

working on: 10

不改变显示的行。我该怎么做呢?我还希望您不要使用cls来阻止"闪烁"。

2 个答案:

答案 0 :(得分:5)

如何执行此操作取决于您的终端类型(可能在您的平台上)。在许多平台和终端上运行的简单方法是使用\r字符将光标移回到行的开头:

import time
import sys
for i in range(10):
    print "\rworking on:", i,
    sys.stdout.flush()
    time.sleep(1)

要实际显示该行,您可能需要调用sys.stdout.flush()

答案 1 :(得分:1)

如果不采用某种类型的GUI,没有任何简单的方法可以做到这一点。使用终端创建GUI的标准方法是python的curses模块。有关如何在应用程序中使用curses的说明,请参阅:Curses Programming with Python.