2017-09-02 17 views
1

長時間潛伏者,首次提問者。有沒有一種方法可以在Python 3中通過編程清除終端跨平臺?

有沒有一種方法可以自動清除Python 3中的終端,無論應用程序在哪個平臺中使用?

我遇到以下(從this answer),它採用ANSI轉義代碼:

import sys 
sys.stderr.write("\x1b[2J\x1b[H") 

但爲了能跨平臺工作它需要這似乎只對Python 2.7版的工作彩色光模塊。

對於上下文,我通過構建一個戰艦遊戲來學習Python,但在每次猜測之後,我都希望能夠清除屏幕並重新打印紙板。

任何幫助表示讚賞!

乾杯

+0

在這種情況下,您還可以輸出一百個換行符,它會更簡單,並且100%跨平臺。 –

+0

是的,我已經看到了這種方法 - 如果光標沒有在終端的頂部被替換,它看起來不太整齊。我想這將是一個折衷。 –

回答

0

我知道這個方法

import os 
clear = lambda: os.system('cls') 
clear() 

的,我不知道這是否與其它平臺的工作,但它的工作在Windows 3.X蟒

import os 
clear = lambda: os.system('clear') 
clear() 

那可能適用於Linux和OS X,但我無法測試。

+0

我認爲這已經在這裏處理:https://stackoverflow.com/questions/2084508/clear-terminal-in-python簡單的答案是,沒有完美的,跨平臺的方式來做到這一點,而不是輸出一堆換行符。但是,有些技術可以在大多數通用平臺上運行。 –

+0

是的,這是我在原始帖子中鏈接的答案。給出的答案可以通過使用colorama模塊(它轉換爲Windows的ANSI轉義)來實現跨平臺,但它只適用於python 2.7。這可能是現在最好的選擇。 –

+0

當我在OS X中嘗試這個時,它給了我'TERM環境變量未設置'的錯誤。想法? –

相關問題