【发布时间】:2016-07-08 10:36:55
【问题描述】:
这是python语言的问题,终端/控制台适用于类Unix系统。如果解决方案独立于平台但不是必需的,那就太好了。
这种情况是程序不断向终端打印行。但是,在要打印的许多行中,有一些是特殊的,例如进度条或状态指示器:它们只能放在控制台底部,而所有其他行仍然可以打印在它们通常所在的位置,一个接一个另一个,屏幕也正常滚动。
示例代码解决方案比理论上的解决方案要好得多。为此,这里有一个例子:
def print_status(msg):
# implement me
print msg
def print_many_lines():
print 'line one\n'
print 'line two\n'
print_status('i am here')
print 'line three\n'
print 'line four\n'
print 'line five\n'
print_status('i am changed')
print 'line six\n'
您能帮我实现 print_status 函数,以便传递给它的 msg 将始终打印在终端底部吗?
请注意,这与another similar question 非常不同,即当多行连续 打印到终端时,我们如何确保它们打印在同一行。在这种情况下使用 \r 可能很有用,但它不能解决这个问题,因为(1)这些特殊行可能更可能不会连续打印,并且(2)在这些特殊行之后会打印其他行,但这些特殊行应该是保持在终端的底部,仍然。
谢谢!
【问题讨论】:
-
我在发布这个问题之前已经看到了这个问题。不它不是。请注意,我不只是希望所有输出连续时都打印在同一行,而是这些输出是随机顺序的。
-
你看过 ncurses 吗?
-
还没有,但似乎有点矫枉过正......
标签: python