2015-07-20 11 views
1

我正在編寫的程序從input()獲取用戶命令,執行相應的功能並顯示相關文本。清除終端直到第x個點 - Python

enter image description here

後約5命令價值文本的,終端變得即使當窗口最大化混亂。我想要做的是在每五個命令後清除終端,但只清除第五個命令及其輸出文本之前(高於)的文本。

更具體地說,在用戶輸入第五個命令後,按下Return(輸入命令)後,我想要命令1-4及其相應的輸出清除屏幕但命令5並且其輸出保持在終端的頂部。

出於演示,這裏是我想要的屏幕看起來就像在這個過程中:

enter image description here

以上變成了如下所示:

enter image description here

使用os模塊os.system('cls')os.system('clear')函數在這種情況下不會正常工作。我不想清除屏幕上的所有文本,只是在某個點之前的文本。

那麼,如何在Python上使用Python來做到這一點?

注意:如果解決方案很簡單,我想同時使用一種方法去除文本,這樣它就不能再滾動回來,以及允許用戶查看以前的命令和文本的方法。

+0

爲什麼不用'os.system(「cls」)'或其他什麼來清除屏幕,然後是'print'>'+ command',然後是通常的命令輸出? –

+0

@GregHewgill我認爲可能有一個我不知道的更清潔的選擇。我曾考慮過你的建議。 – Jacob

回答

2

使用簡單的終端輸出,沒有一個真正的好方法來做到這一點。即使「清除屏幕」的操作在通常被認爲是簡單的終端輸出的範圍之外,這就是爲什麼最終調用外部程序來執行它的原因。

但是,處理終端輸出的另一種方式是使用curses庫。該庫允許您對輸出在屏幕上的確切顯示方式進行全面控制,實際上包括諸如deletelninsdelln之類的功能,可以從屏幕上刪除文本行。