有没有办法清除 Python 的 IDLE 窗口?
- 2025-02-27 09:05:00
- admin 原创
- 75
问题描述:
我知道有一个关于 Python 控制台的类似主题,但我不知道它们是否相同。我试过了system("clear")
,但在这里不起作用。
如何清除 Python 的IDLE窗口?
解决方案 1:
“cls”和“clear”是清除终端(即 DOS 提示符或终端窗口)的命令。从您的屏幕截图来看,您正在使用 IDLE 中的 shell,它不会受到此类事物的影响。不幸的是,我认为没有办法在 IDLE 中清除屏幕。您能做的最好的事情就是将屏幕向下滚动很多行,例如:
print ("
" * 100)
尽管你可以把它放在一个函数中:
def cls(): print ("
" * 100)
然后在需要的时候调用它cls()
解决方案 2:
os.system('clear')
适用于 Linux。如果您运行的是 Windows,请尝试os.system('CLS')
。
您需要先导入操作系统,如下所示:
import os
解决方案 3:
这里的大多数答案都是用清除命令来清除 DOS 提示屏幕,但这不是问题所在。这里的其他答案是打印空白行来显示屏幕清除效果。
这个问题最简单的答案是
如果没有外部模块集成,则无法清除 Python IDLE shell。如果您确实想获得一个空白的纯净新 shell,只需关闭之前的 shell 并再次运行它
解决方案 4:
ctrl
+L
清除 Ubuntu Linux 上的屏幕。
解决方案 5:
清除 shell 的扩展可在Issue6143中找到,作为“功能请求”。此扩展包含在IdleX中。
解决方案 6:
使用:
>>> import os
>>>def cls():
... os.system("clear")
...
>>>cls()
完美解决了这个问题。也没有打印出“0”。
解决方案 7:
似乎没有办法清除 IDLE“shell”缓冲区。
解决方案 8:
Command
+L
适用于 Mac OS X。
Ctrl
+L
适用于 Ubuntu。
它清除交互式会话中的最后一行。
解决方案 9:
我喜欢使用:
import os
clear = lambda : os.system('cls') # or clear for Linux
clear()
解决方案 10:
在 Python 2.4+ 中执行命令的方式是使用subprocess模块。你可以像使用 一样使用它os.system
。
import subprocess
subprocess.call("clear") # Linux and Mac
subprocess.call("cls", shell=True) # Windows
如果您在 Python 控制台中执行此操作,则需要执行某些操作来隐藏返回值(对于os.system
或subprocess.call
),例如将其分配给变量:
cls = subprocess.call("cls", shell=True)
解决方案 11:
文件 -> 新窗口
在新窗口中**
运行->Python Shell
这种方法的问题在于它会清除你定义的所有内容,例如变量。
或者,您应该只使用命令提示符。
打开命令提示符
输入“cd c:\python27”
输入“python example.py”,您必须在非交互模式下使用 IDLE 编辑此文件。如果您在 python shell 中,请按文件 -> 新窗口。
请注意,example.py 需要与 C:\python27 位于同一目录中,或者位于安装了 python 的任何目录中。
然后从这里,您只需按键盘上的向上箭头键即可。您只需编辑 example.py,使用 CTRL + S,然后返回命令提示符,按向上箭头键,按回车键。
如果命令提示符太拥挤,只需输入“clr”
“clr”命令仅适用于命令提示符,不适用于 IDLE。
解决方案 12:
似乎没有直接的方法可以清除 IDLE 控制台。
我这样做的一个方法是使用 exit() 作为我的 python 脚本 (.py) 中的最后一个命令。当我运行脚本时,它总是在退出之前打开一个新的控制台和提示。
优点:每次执行脚本时,控制台都会重新启动。 缺点:每次执行脚本时,控制台都会重新启动。
解决方案 13:
这些解决方案在 Windows 7 和 IDLE 上都对我不起作用。最后我使用 PowerShell,在其中运行 Python,然后退出并在 PowerShell 中调用“cls”来清除窗口。
缺点:假设 Python 已在 PATH 变量中。此外,这会清除您的 Python 变量(尽管重新启动 shell 也会清除)。
优点:保留您所做的任何窗口自定义(颜色、字体大小)。
解决方案 14:
看来如果没有任何外部库就不可能做到这一点。
如果您使用的是 Windows,并且不想每次想要清除它时都打开和关闭 shell,那么另一种方法是使用 Windows 命令提示符。
键入
python
并按回车键将 Windows 命令提示符变为 python 空闲(确保已安装 python)。键入
quit()
并按回车键将其返回到 Windows 命令提示符。键入
cls
并按回车键以清除命令提示符/Windows Shell。
解决方案 15:
正如mark.ribau 所说,似乎没有办法清除 IDLE 中的 Text 小部件。应该编辑EditorWindow.py
模块并在 EditorWindow 类中添加一个方法和一个菜单项,执行如下操作:
self.text.tag_remove("sel", "1.0", "end")
self.text.delete("1.0", "end")
也许还有一些我不知道的标签管理。
解决方案 16:
在 Windows 上执行此操作的最佳方法是使用命令提示符“cmd”并访问 Python 目录。可以在开始菜单 →运行→ cmd中找到命令提示符。
C:
cd 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
解决方案 17:
您可以制作一个AutoHotkey脚本。
要将Ctrl
+设置R
为热键来清除 shell:
^r::SendInput print '
' * 50 {Enter}
只需安装 AutoHotkey,将上述内容放入名为idle_clear.ahk的文件中,运行该文件,您的热键就会激活。
解决方案 18:
我建议你使用Thonny IDE for Python。它的 shell 有“清除 Shell”选项,你还可以在单独的列表中跟踪创建的变量。与现代 IDE 相比,它的调试效果非常好。你还可以在 python 文件中编写代码,同时在同一位置访问 shell。
而且重量很轻!
解决方案 19:
使用这个
for num in range(1,100):
print("
")
解决方案 20:
乌龟可以清除屏幕。
#=====================================
import turtle
wn = turtle.Screen()
wn.title("Clear the Screen")
t = turtle.Turtle()
t.color('red', 'yellow')
t.speed(0)
#=====================================
def star(x, y, length, angle):
t.penup()
t.goto(x, y)
t.pendown()
t.begin_fill()
while True:
t.forward(length)
t.left(angle)
if t.heading() == 0: #===============
break
t.end_fill()
#=====================================
# ( x, y, length, angle)
star(-360, 0, 150, 45)
t.clear()
#=====================================
解决方案 21:
这个答案适用于IDLE,而不是命令提示符,并使用Python 3.10.6进行了测试。
如果在代码运行时(在代码完成之前)按下 Ctrl+Z,先前的输出将被删除。如果您希望自动执行此操作,可以使用pynput包。
pip install pynput
以下是示例代码(宏不安全,使用风险自负):
# License: MIT-0
import time
import pynput
class _Eraser:
keyboard = pynput.keyboard.Controller()
ctrl = pynput.keyboard.Key.ctrl
is_initialized = False
@classmethod
def erase(cls, n):
if not cls.is_initialized:
cls.is_initialized = True
n += 1
for _ in range(n):
with cls.keyboard.pressed(cls.ctrl):
cls.keyboard.press('z')
cls.keyboard.release('z')
time.sleep(0.1)
def erase(n=1):
_Eraser.erase(n)
print('test1
', end='')
print('test2
', end='')
erase() # Erase 'test2
'
print('test3')
print('test4')
erase() # Erase '
'
print('test5')
print('test6')
erase(2) # Erase '
' and then 'test6'
print('test7')
输出为:
test1
test3
test4test5
test7
解决方案 22:
这在 Windows 中对我有用:
print chr(12)
解决方案 23:
无需编写自己的函数来执行此操作!Python 具有内置的 clear 函数。
在命令提示符中键入以下内容:
shell.clear()
如果用于IPython
Windows,则
cls()
扫码咨询,免费领取项目管理大礼包!