使用Python在Shell中显示实时文本

时间:2014-08-08 07:03:49

标签: python

我有大量文字(大约200行)。我希望在Linux shell中实时显示。

即实时我的意思是我将字母1 2 3 4打印到屏幕上,然后打印1秒后打印2 3 4 5.这实际上是通过以下代码实现的。

    sp.call('clear',shell=True)
    print("\033[%d;%dH%s" % (x,y,output))

我遇到的问题是当我在屏幕上打印大量文本然后重新打印它时。我只看到文本的底部。

我正在寻找任何python方法,类等,可以让我在实时显示时显示大量文本,并允许用户轻松滚动输出(即可能滚动,侧边栏等等)。

2 个答案:

答案 0 :(得分:0)

curses模块允许您将光标定位在终端中,然后编写相关文本。

您可以在内存中为整个文件创建一个缓冲区,并跟踪缓冲区中由可见窗口左上角表示的位置。只要可见窗口位置发生变化(例如,当用户滚动时),您就可以重绘当前窗口的相应文本。

答案 1 :(得分:0)

您应该检查Python -- How do you view output that doesn't fit the screen?并查看是否有任何有趣的解决方案。

简单的一个是将你的python进程管道化为较少,例如python myprogram.py | less 如果您想要更多控制权,请使用curses模块:https://docs.python.org/2/library/curses.html