清除终端直至x点 - Python

时间:2015-07-20 00:32:13

标签: python terminal

我写的程序从input()获取用户命令,执行相应的功能,并显示相关的文本。

enter image description here

在大约5个命令值的文本之后,即使窗口最大化,终端也会变得混乱。我想做的是在每五个命令之后清除终端,但只清除第五个命令及其输出文本之前(上方)的文本。

更具体地说,在用户输入第五个命令后,按下Return(输入命令),我希望命令1-4及其相应的输出清除屏幕,但是命令5并且其输出保持在终端顶部。

为了演示,这是我想要的屏幕在这个过程中的样子:

enter image description here

以上内容如下:

enter image description here

使用os模块和os.system('cls')os.system('clear')函数在这种情况下无法正常工作。我不想清除屏幕上的所有文字,只清除特定点之前的文字。

那么,我如何在Windows上用Python做到这一点?

注意:如果解决方案很简单,我想要一种删除文本的方法,使其无法滚动回来,以及允许用户查看以前的命令和文本的方法。

1 个答案:

答案 0 :(得分:2)

使用简单的终端输出,没有一个好方法可以做到这一点。即使是“清除屏幕”的操作也超出了通常被认为是简单的终端输出的范围,这就是为什么你最终调用外部程序来完成它。

但是,处理终端输出的另一种方法是使用curses库。该库允许您对输出在屏幕上的显示方式进行广泛控制,实际上包括deletelninsdelln等功能,可以从屏幕上删除文本行。