清除终端直到点 x - Python

Clear terminal up until point x - Python

我正在编写的一个程序接受来自 input() 的用户命令,执行相应的功能,并显示相关文本。

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

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

为了演示,这里是我希望屏幕在此过程中的样子:

上面变成下面:

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

那么,我如何在 Windows 上使用 Python 执行此操作?

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

使用简单的终端输出,并没有真正好的方法来做到这一点。即使 "clearing the screen" 的操作也超出了通常认为的简单终端输出的范围,这就是为什么您最终要调用外部程序来完成它的原因。

但是,处理终端输出的另一种方法是使用 curses library. This library allows you extensive control over exactly how your output appears on the screen, and in fact includes functions like deleteln and insdelln 从屏幕上删除文本行。