2009-09-16 71 views
115

我知道有一個關於python控制檯的類似主題,但我不知道它們是否相同。我嘗試了系統(「清除」),但它在這裏不起作用。任何方式來清除python的IDLE窗口?

如何清除python的IDLE窗口?

+7

這是不是一個重複,OP是詢問如何清除IDLE外殼,沒有安慰 – 2014-01-17 08:48:09

+0

這不工作的原因是因爲Python啓動一個新的shell會話,並在那裏運行命令'clear'。它也解釋了爲什麼'cd'在'system.os'中不起作用。 – 2015-03-22 00:42:22

+9

按住'ctrl + j'一段時間,然後按回車,這將是最好的方式 – ytpillai 2015-08-16 05:52:55

回答

57

os.system('clear')適用於linux。如果您正在運行Windows,請嘗試os.system('CLS')

你需要先導入OS這樣的:

import os 
+1

似乎不起作用。也許我必須導入一些東西? – 2009-09-16 12:23:19

+0

您需要導入os – 2009-09-16 13:49:22

+10

os.system('CLS')在Windows中工作。 (Python 2.6)。結果屏幕被清除,只顯示「0」,我假設它是CLS的返回值,位於頂部。下一行有>>>提示。 – mjv 2009-09-16 14:24:52

7

在Python 2.4及以上的執行命令的方式是使用subprocess模塊。您可以像使用os.system一樣使用它。

import subprocess 
subprocess.call("clear") # linux/mac 
subprocess.call("cls", shell=True) # windows 

如果你在Python控制檯執行此,你需要做的事情要隱瞞的返回值(對於os.systemsubprocess.call),喜歡它賦值給一個變量:

cls = subprocess.call("cls", shell=True) 
+0

回溯(最近調用最後一次): 文件「」,第1行,在 subprocess.call(「cls」) 文件「C:\ Python26 \ lib \ subprocess.py」,第444行,致電 返回Popen(* popenargs,** kwargs).wait() 文件「C:\ Python26 \ lib \ subprocess.py」,線595,在__init__ errread,ERRWRITE) 文件 「C:\ Python26 \ lib中\ subprocess.py」,線804,在_execute_child STARTUPINFO) WindowsError:[錯誤2]系統不能找到指定的文件 – 2009-09-16 15:20:13

+1

嗯..這就是我不使用Windows而無法測試它的原因。嘗試subprocess.call(「cls」,shell = True) – 2009-09-17 01:00:17

81

「cls」和「clear」是清除終端的命令(即DOS提示符或終端窗口)。從你的屏幕截圖中,你正在使用IDLE中的shell,這不會受到這種情況的影響。不幸的是,我認爲沒有辦法在IDLE中清除屏幕。你可以做的最好的是滾動屏幕向下地段線路,例如:

print "\n" * 100 

雖然你可以把這個功能:

def cls(): print "\n" * 100 

,然後在需要的cls()

時調用它
+11

它確實清除了屏幕,但在最後一行依然會得到提示符「>>>」,而我認爲它會降低效率......仍然+1清除屏幕 – Invictus 2012-11-12 13:02:33

+0

這是一個體面的解決方法 - 我發現的唯一一個工作 – OutputLogic 2013-10-19 03:02:48

+9

Python 3.4.2 - 我不得不用括號括住「\ n」和* 100,所以:'print(「\ n」* 100) ' – 2015-01-15 16:16:36

0

您的屏幕截圖顯示您正在使用IDLE。 cls/clear不適合你。

+1

這不是一個好的答案。 OP沒有要求「什麼不能幫助我清除Python的IDLE窗口」。 – DeFazer 2016-07-19 18:34:24

7

似乎沒有辦法清除IDLE'shell'緩衝區。

+1

http://bugs.python.org/issue6143有一個擴展來清除shell,並且包含在IdleX中。 – Roger 2011-12-02 07:05:34

0

正如mark.ribau所說,似乎沒有辦法清空閒置的文本部件。每個人都應該編輯EditorWindow.py模塊,並在EditorWindow的類,它像添加一個方法和一個菜單項:

self.text.tag_remove("sel", "1.0", "end") 
self.text.delete("1.0", "end") 

,也許更多一些標籤管理這些,我不知道的。

2

文件 - >新建窗口

在新窗口中**

運行 - > Python Shell中

這種方法的問題是,它會清除所有你定義的東西,如變量。

或者,您應該只使用命令提示符。

打開命令提示符

鍵入「cd C:\ python27」

型「蟒蛇example.py」,你當它是不是在交互模式下編輯該使用閒置。如果你在python shell,文件 - >新窗口。

請注意,example.py需要與C:\ python27位於同一目錄,或者安裝了python的任何目錄。

然後從這裏開始,只需按下鍵盤上的向上箭頭鍵即可。您只需編輯example.py,使用CTRL + S,然後返回到命令提示符,按向上箭頭鍵,敲回車。

如果在命令提示符下變得太擁擠,只需鍵入「CLR」

的「CLR」命令只帶命令提示符的工作,它不會與無功。

+3

只是說,但我相信這個問題是問'你如何清除屏幕在從腳本內部的空閒。 – Xenon 2014-11-22 03:18:27

1

如果要清除shell緩衝區,請在IDLE中進入shell> restart shell。你的問題有點含糊。你想清除shell緩衝區,還是試圖調用操作系統命令?

+0

需要清除shell緩衝區,但重新啓動不會。它重置命名空間並插入一行,指出它重新啓動,但屏幕仍顯示重新啓動之前顯示的結果。 – Chev 2012-05-09 17:21:04

+2

只是說,但我相信這個問題是問'你如何清除屏幕裏面的空閒腳本里面的空閒。 – Xenon 2014-11-22 03:19:13

16

作爲「功能請求」,可以在Issue6143中找到用於清除外殼的擴展。該擴展包含在IdleX中。

+0

這是Python Idle的一個很好的擴展。非常感謝! – Indrajit 2016-03-28 04:42:31

7
>>> import os 

>>>def cls(): 
... os.system("clear") 
... 
>>>cls() 

這的確很完美。也不打印'0'。

+0

不錯,簡單,做它說的。或者在'import os'之後,只需鍵入'os.system(「clear」)',儘管如果您經常需要清除屏幕,該函數也很方便。 – 2013-06-22 09:31:32

+1

os.system(「清除」)工作。這對我有用,但我必須輸入「cls()」 – j0h 2014-08-23 18:27:58

+0

當我嘗試這樣做時,命令行返回並且控制檯未清除 – ericgrosse 2015-09-03 16:07:20

-2

有沒有必要編寫自己的功能來做到這一點! Python有一個內置的清除功能。在命令提示符下

鍵入以下內容:

shell.clear() 
+2

是否有某種導入這樣做所需,因爲它不適合我。如果涉及進口,則應將其納入您的回覆。另外,問題是關於清除提示_IN IDLE_。 – Xenon 2014-12-13 03:05:54

1

做到這一點在Windows上的最佳方法是使用命令提示符「cmd」並訪問蟒蛇目錄,在命令提示符下可以在開始菜單上找到>運行> CMD

C:\>cd Python27 
C:\Python27>python.exe 
Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32 
Type "help", "copyright", "credits" or "license()" for more information. 
>>>import os 
>>>os.system('cls') #This will clear the screen and return the value 0 
+2

只是說,但我相信問題是問'你如何清理空閒屏幕'。 (強調'在空閒') – Xenon 2014-11-22 03:22:19

-2

如果您使用的終端(我使用Ubuntu的),那麼就使用CTRL + 升的組合,從鍵盤到清除蟒蛇SCR ipt,即使它清除終端腳本...

+1

只是說,但問題是關於清空屏幕在空閒,從一個PYTHON SCRIPT。 – Xenon 2014-12-13 03:04:22

2

您可以製作一個AutoHotKey腳本。

設置CTRL-R的熱鍵來清除外殼:

^r::SendInput print '\n' * 50 {Enter} 

只要安裝AutoHotkey的,把上面一個叫idle_clear.ahk文件,運行該文件,你的熱鍵激活。

-1

這個工作對我來說在Windows:

print chr(12)

15

大部分的答案出現在這裏做清除DOS提示符清屏的命令。這不是在這裏問的問題。這裏發佈的其他答案是打印空白行以顯示屏幕的清除效果。

這個問題的最簡單的答案是

It is not possible to clear python IDLE shell without some external module integration. If you really want to get a blank pure fresh shell just close the previous shell and run it again

-1
from subprocess import call as c 

def cls(): 

    c("cls",shell=True) 

print([x for x in range(10000)]) 

cls() 

每當你想清除控制檯呼叫功能CLS,但請注意,此功能將清除屏幕僅適用於Windows,如果你正在運行的Python腳本使用cmd提示符,如果您使用IDLE運行,它將不會清除緩衝區。

+1

只是說,但我相信這個問題是問'你如何清除屏幕在從腳本內部的空閒。 – Xenon 2014-11-22 03:20:16

1

使用本

for num in range(1,100): 
    print("\n") 
+0

工程,但如果你想從前面看到一些東西,你會得到一個令人難以置信的長距離滾動距離。 – Xenon 2014-11-22 03:21:12

+0

嘗試縮小範圍(1,10): – Tauseef 2014-11-24 09:06:08

+0

@Xenon但是,如果想法是清除窗口,則用戶應該無法從早期查看某些內容。 – sam 2016-07-07 15:39:45

26

CTRL +大號清除在Ubuntu Linux的屏幕。

+0

也在Red Hat/Fedora/CentOS – DtechNet 2015-06-29 21:20:29

+2

和Mac OS X上 – foobar5512 2016-01-18 00:42:57

+1

在Windows上,如果您使用IDLEx。乾杯!很高興終於得到了一個簡單的解決方案! – 2016-02-06 06:32:21

-1

我喜歡用:

import os 
clear = lambda : os.system('cls') # or clear for Linux 

clear() 
+0

看起來像這個答案[已經提供](http://stackoverflow.com/a/1432505/2308683) – 2016-06-13 21:20:27

1

這些解決方案都沒有爲我工作在Windows 7和空閒之內。使用PowerShell創建它,在其中運行Python並退出以在PowerShell中調用「cls」來清除窗口。

缺點:假設Python已經在PATH變量中。而且,這會清除你的Python變量(儘管重新啓動shell也是如此)。

優點:保留您所做的任何窗口定製(顏色,字體大小)。

0

看來這是不可能的,沒有任何外部庫。

如果您正在使用Windows並且不想在每次要清除它時打開和關閉shell,則使用windows命令提示符還有一種替代方法。

  • 類型python和回車鍵打開Windows命令提示符到Python閒置(請確保安裝的Python)。

  • 鍵入quit()並按回車鍵將其返回到Windows命令提示符。

  • 類型cls並按回車鍵清除命令提示符/ windows shell。