2014-03-01 135 views
2

我一直在想辦法在運行腳本時清除shell,但是在CMD中運行腳本時是否有辦法清除屏幕? 我現在的方法是這樣的:如何在運行python腳本時清除cmd /終端

clear.py

import title 
def clear(): 
    print('\n' * 25) 
    title.title() 

game.py

from engine import clear 
clear.clear() 
print(Fore.CYAN + Style.BRIGHT + "--------------------------------") 

但是這種方法是不是真的可靠,因爲有些CMD尺寸在所有計算機上的不同,我也沒有在OSx上試過它。

+0

相關:[Python - 清理終端屏幕更優雅](https://stackoverflow.com/q/34388390/4279) – jfs

回答

2

這裏的另一種方式,即處理Windows的情況下,以及類Unix系統(Linux,OSX等):

import os 
os.system('cls' if os.name == 'nt' else 'clear') 

clear命令工作的所有類Unix系統(即,OSX, Linux等)。 Windows相當於cls

+1

OP特意要求Windows。因爲'cls'是'cmd.exe'的內部命令,所以我會打電話([「cls」])'不起作用。 'call(「cls」,shell = True)'可能會起作用,但是我對Windows有什麼瞭解。 –

+0

@SvenMarnach我沒有看到他問Windows的地方。但是,是的,你仍然可以調用'subprocess.call()'。 – sgarza62

+0

「...在CMD中運行腳本時」。我想這意味着Windows。 –

3

您最好的選擇可能是使用colorama模塊,使ANSI escape sequences在Windows終端,然後使用ANSI序列來清除屏幕:

import colorama 
colorama.init() 
print("\033[2J\033[1;1f") 

這應該在所有常見平臺上工作。

+1

在試圖做到這一點,我得到的錯誤:'AttributeError:'模塊'對象有沒有屬性'COORD'' – dawsondiaz

+0

sgarza62的解決方案與我在Ubuntu上的解釋器中完成的效果不同。你的左上角留下一個0,然後我在下一行提示,他完全清除,但逐漸將提示下移兩行左右,想法? –

+0

@dawsondiaz:然後你的模塊安裝不知何故中斷。我無法真正幫助你。嘗試使用'pip'來安裝模塊。 –