【问题标题】:Python: update the last line and other lines asynchronouslyPython:异步更新最后一行和其他行
【发布时间】:2016-02-19 08:40:34
【问题描述】:

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

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

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

【问题讨论】:

    标签: python printing console asynchronous


    【解决方案1】:

    对于 Unix,请使用 curses

    在 Windows 上,一种选择是使用 Console 模块。

    【讨论】:

      【解决方案2】:

      实际上没有必要异步更改这些部分。您可以使用\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() 函数。

      【讨论】:

      • 那是不是意味着我必须记录内存中的每一个信息?举个在线聊天应用的例子,这些信息是消息,变量就像在线人数、消息数等。
      猜你喜欢
      • 1970-01-01
      • 2013-01-17
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多