Python:异步更新最后一行和其他行

时间:2016-02-19 08:40:35

标签: python printing console asynchronous

假设我有大量的更新信息,以及需要不断在控制台上显示的一些变量。我想做以下效果:

Info 1
Info 2
Info 3
...
Info n
Var1: xxx, Var2: xxx <- The last line on the window of console

信息和变量可能会有不同的变化,如何使这两个部分在控制台中异步更改?

2 个答案:

答案 0 :(得分:0)

对于Unix,请使用curses

在Windows上,一个选项是使用Console模块。

答案 1 :(得分:0)

实际上不需要异步更改这些部分。您可以使用\r符号返回最后一行的托架,然后使用多个空格来清除它。以下python代码应该可以解决问题。

s = ''
for info in infos:
        print "\r", " " * len(s), "\r"
        print "info %s" % info
        s = "var1: %s, var2: %s" % (var1, var2)
        print s,

问题是打印速度太快以至于您无法用眼睛捕捉输出,因此可能需要在打印时添加一些sleep()功能。