我有大量文字(大约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方法,类等,可以让我在实时显示时显示大量文本,并允许用户轻松滚动输出(即可能滚动,侧边栏等等)。
答案 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