有什么方法可以清除python的IDLE窗口?


152

我知道关于python控制台也有类似的话题,但我不知道它们是否相同。我尝试了system(“ clear”),但在这里不起作用。

如何清除python的IDLE窗口?


10
它不是重复的,OP正在询问如何清除IDLE外壳,而不是控制台
Moha万能的骆驼

1
这不起作用的原因是因为Python启动了一个新的Shell会话并clear在其中运行命令。它还说明了为什么cd在中不起作用system.os
jkd

14
按住ctrl + j
片刻

1
@ytpillai,嗯,但这会在底部提示我。毫无疑问,一种解决方案仍然会带来一些便利。
约翰·雷德

Answers:


97

“ cls”和“ clear”是将清除终端的命令(即DOS提示符或终端窗口)。从您的屏幕截图中,您正在使用IDLE中的shell,它将不受此类影响。不幸的是,我认为没有方法可以清除IDLE中的屏幕。您最好的办法是将屏幕向下滚动很多行,例如:

print "\n" * 100

尽管可以将其放在函数中:

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

然后在需要时调用它 cls()


13
它确实清除了屏幕,但是您仍然在最后一行而不是顶部显示提示“ >>>”,我想使它的效率降低了一些...清除屏幕仍为+1
Invictus 2012年

10
Python 3.4.2-我必须将“ \ n”和* 100括在括号中,因此:print ("\n" * 100)
cody.codes

4
这不会清除屏幕,我仍然可以向上滚动!
esoterik

2
ctrl + j也可以。包括在内可能会很有用。stackoverflow.com/a/11993793/4871483
ytpillai

1
请注意,这是python标签。非特定版本。对于所有的Python 3.x的用户来说print('\n'*100)
卢克

83

os.system('clear')在linux上工作。如果您正在运行Windows,请尝试os.system('CLS')

您需要像这样首先导入os:

import os

13
os.system('CLS')在Windows中工作。(Python 2.6)。清除结果屏幕,仅在顶部显示“ 0”,我认为这是CLS的返回值。下一行具有>>>提示符。
mjv

34
这会在外部命令提示符中对cls进行os调用,并且不会与空闲进行交互
bunglestink 2011年

15
idle不是控制台窗口。clear和cls均可在控制台/终端窗口上运行。
Bryan Oakley

15
现在的问题是“清屏在待机状态”上面的方法肯定做我的电脑上不工作
艾丽卡

20
为什么要反对?这将打开一个新的命令提示符,将其清除,然后将其关闭
ytpillai 2015年

39

大多数答案都是在这里使用清除命令清除DOS提示符屏幕,这不是问题。此处的其他答案是打印空白行以显示屏幕的清除效果。

这个问题的最简单答案是

没有某些外部模块集成,就无法清除python IDLE shell。如果您真的想获得一个空白的纯新外壳,请关闭前一个外壳并再次运行


3
这是对这个问题的一个很好,直接和实际的答案;关闭空闲状态,保持文件打开状态,再次运行文件,空闲状态现在有了新的显示。
Mike_K

@Mike_K,它可能很有用,但永远不会有用。现在,我的屏幕已拆分(一本书<|>闲置)。当我重新执行空闲时,新屏幕进入默认位置/尺寸。因此,它将变得非常无聊。
sdlins

38

ctrl+ L清除Ubuntu Linux上的屏幕。


同样在Red Hat / Fedora / CentOS上
DtechNet

1
在Windows上,如果您使用IDLEx。干杯! 很高兴终于有了一个简单的解决方案!
约翰·雷德

在Ubuntu 18.04中不起作用。更糟糕的是使用CTRL+ J多次。
sdlins

@slinstj将其完全关闭在窗户上
Mubarek '18

添加到我今天的黑客!在MacOS中也可以像魅力一样工作!
xtornasol512


19
>>> import os

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

那确实是完美的。也没有打印“ 0”。


很好,很简单,按照它说的做。或者,如果您经常需要清除屏幕,则在import os键入os.system("clear")该功能后很方便。
戴夫·埃弗里特

1
os.system(“ clear”)正常工作。这对我有效,但是我必须输入“ cls()”
j0h 2014年

当我试图此,命令行返回的<函数CLS在0x024D25D0>和控制台没有明确
ericgrosse

到目前为止最好的答案
hello123

@ericgrosse,您需要输入cls(),而不是cls
Banoona,


7

在Python 2.4+中执行命令的方法是使用子进程模块。您可以以与使用相同的方式使用它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)

追溯(最近一次调用):<模块> subprocess.call中的文件“ <pyshell#1>”,第1行,在以下目录中的行“ C:\ Python26 \ lib \ subprocess.py”中,文件“ C:\ Python26 \ lib \ subprocess.py”调用返回Popen(* popenargs,** kwargs).wait()文件“ C:\ Python26 \ lib \ subprocess.py ”,第595行,init errread,errwrite)文件“ C:\ Python26 \ lib \ subprocess.py “,在_execute_child startupinfo中的第804行)WindowsError:[错误2]系统找不到指定的文件
吞噬了极乐世界09年

1
嗯。这就是我不使用Windows从而无法对其进行测试的结果。试试subprocess.call(“ cls”,shell = True)
路德·兹沃林斯基


4

文件->新窗口

在新窗口中**

运行-> Python Shell

该方法的问题在于它将清除您定义的所有内容,例如变量。

另外,您应该只使用命令提示符。

打开命令提示符

输入“ cd c:\ python27”

键入“ python example.py”,则当它不处于交互模式时,必须使用IDLE进行编辑。如果您在python shell中,则文件->新窗口。

请注意,example.py必须与C:\ python27位于同一目录,或者与您安装python的目录相同。

然后从这里,您只需按键盘上的UP箭头键。您只需编辑example.py,使用CTRL + S,然后返回命令提示符,按UP箭头键,然后按Enter。

如果命令提示符太拥挤,只需键入“ clr”

“ clr”命令仅适用于命令提示符,不适用于IDLE。


3
只是说,但我相信问题是在问“如何从PYTHON脚本内部清除空闲状态下的屏幕。
艾丽卡

启动新文件并在其中运行Python shell似乎是我可用的唯一选项,其他任何方法均无效。谢谢!
谢尔盖·扎哈罗夫

4

似乎没有清除IDLE控制台的直接方法。

我这样做的一种方法是使用exit()作为python脚本(.py)中的最后一个命令。当我运行脚本时,它总是打开一个新的控制台并在退出前提示。

好处:每次执行脚本时,都会重新启动控制台。缺点:每次执行脚本时都会重新启动控制台。


2

您可以制作一个AutoHotKey脚本。

要将ctrl-r设置为热键以清除外壳:

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

只需安装AutoHotKey,将以上内容放入一个名为idle_clear.ahk的文件中,运行该文件,然后您的热键便处于活动状态。


2

在Windows 7和IDLE内,这些解决方案都不适合我。使用PowerShell结束工作,在其中运行Python,然后退出以在PowerShell中调用“ cls”以清除窗口。

缺点:假设Python已经在PATH变量中。另外,这确实会清除您的Python变量(尽管重启外壳也是如此)。

优点:保留您已进行的所有窗口自定义(颜色,字体大小)。


2

如果没有任何外部库,似乎是不可能做到的。

如果您使用的是Windows,并且不想每次都想打开和关闭外壳,则可以使用Windows命令提示符。

  • 键入python并按Enter键以将Windows命令提示符转到python空闲状态(确保已安装python)。

  • 键入quit()并按Enter键,将其返回到Windows命令提示符。

  • 键入cls并按Enter键以清除命令提示符/ Windows Shell。


2

我建议您使用Thonny IDE用于Python。它的外壳程序具有“清除外壳程序”选项,您还可以跟踪在单独列表中创建的变量。即使与现代IDE相比,它的调试也非常好。您还可以在python文件中编写代码,并在同一位置访问shell。

而且轻巧!


2

对于MAC OS X,“ command + L ”。

Ubuntu的“ control + L

清除交互式会话的最后一行


我对此功能一无所知,谢谢。始终编写您的命令。
Priyank Pathak

1

正如mark.ribau所说,似乎没有办法清除处于空闲状态的Text小部件。应该编辑EditorWindow.py模块,并在EditorWindow类中添加一个方法和一个菜单项,其作用类似于:

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

也许还有一些我不知道的标签管理。


1

在Windows上执行此操作的最佳方法是使用命令提示符“ cmd”并访问python目录,该命令提示符可在开始菜单> run> 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
只是说一句,但我相信问题是在问“您如何在空闲状态下清除屏幕”。(重视IN IDLE
艾丽卡

1

用这个

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

可以,但是如果您想从较早的地方看到内容,最终滚动距离会非常长。
艾丽卡

尝试减小范围(1,10):
Tauseef

@Xenon但是,如果要清除窗口,则用户应该无法从较早的时间查看内容。
山姆

0

屏幕截图显示您正在使用IDLE。cls/ clear不会为您工作。


5
那不是一个很好的答案。OP并没有要求“什么会帮助我清除Python的IDLE窗口”。
DeFazer

-1
from subprocess import call as c

def cls():

    c("cls",shell=True)

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

cls()

每当您希望清除控制台时,请调用cls函数,但请注意,仅当您使用cmd提示符运行Python Script时,此函数才会清除Windows中的屏幕,如果您通过IDLE运行,则不会清除缓冲区。


2
只是说一句,但我相信问题是在问“如何从PYTHON脚本内部清除空闲状态下的屏幕。
艾丽卡

-1

我得到了:

import console 
console.clear()

如果要在脚本中执行此操作,或者如果您在控制台中,请单击clear()并按Enter。这适用于iPhone上的Pyto。它可能取决于控制台。


consoleIDLE中没有模块。
AKX

它说没有控制台模块。
穆萨

-2

这在Windows中对我有效:

print chr(12)


在空闲终端中无法识别chr
wbadry

谢谢乔尔。也为我工作。

在Windows,Spyder IDE中也对我有效,并且似乎是实现所需结果的最简单代码。{chr(12)is formfeed}
伊恩

-4

如果您使用的是终端机(我使用的是ubuntu),则只需使用键盘上的CTRL+ 组合l键即可清除python脚本,甚至可以清除终端机脚本...


1
只是说而已,但问题是要从PYTHON脚本中清除屏幕IDLE。
艾丽卡

OP指定了IDLE。
wbadry '18

-5

无需编写您自己的函数即可!Python具有内置的clear函数。

在命令提示符下键入以下内容:

shell.clear()

如果IPython用于Windows,则为

cls()

4
这样做是否需要某种导入,因为它对我不起作用。如果涉及导入,则应将其放入响应中。另外,问题在于清除提示IN IDLE
艾丽卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.