Gibt es eine Möglichkeit, das IDLE-Fenster von Python zu löschen?

152

Ich weiß, dass es ein ähnliches Thema über die Python-Konsole gibt, aber ich weiß nicht, ob sie gleich sind. Ich habe versucht, System ("klar") und es hat hier nicht funktioniert.

Wie lösche ich das IDLE-Fenster von Python?

verschlungenes Elysium
quelle
10
Es ist kein Duplikat, OP fragt, wie man die IDLE-Shell löscht, nicht die Konsole
Moha, das allmächtige Kamel
1
Der Grund, warum dies nicht funktioniert, ist, dass Python eine neue Shell-Sitzung startet und den Befehl cleardort ausführt. Es erklärt auch, warum cdes nicht funktioniert system.os.
JKD
14
Halten Sie ctrl + jeine Weile
gedrückt
1
@ytpillai, Ah, aber das gibt mir die Eingabeaufforderung unten. Eine Lösung, ohne Zweifel, aber dennoch ein wenig Bequemlichkeit.
John Red

Antworten:

97

Die "cls" und "clear" sind Befehle, die ein Terminal löschen (dh eine DOS-Eingabeaufforderung oder ein Terminalfenster). In Ihrem Screenshot verwenden Sie die Shell in IDLE, die von solchen Dingen nicht betroffen ist. Leider glaube ich nicht, dass es eine Möglichkeit gibt, den Bildschirm in IDLE zu löschen. Das Beste, was Sie tun können, ist, den Bildschirm um viele Zeilen nach unten zu scrollen, z.

print "\n" * 100

Obwohl Sie dies in eine Funktion setzen könnten:

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

Und dann nennen Sie es bei Bedarf als cls()

Brian
quelle
13
Es löscht zwar den Bildschirm, aber Sie erhalten immer noch die Aufforderung ">>>" in der letzten Zeile, ganz oben, was es meiner Meinung nach weniger ineffizient macht ... immer noch +1 für das Löschen des Bildschirms
Invictus
10
Python 3.4.2 - Ich musste "\ n" und * 100 in Klammern setzen, also:print ("\n" * 100)
cody.codes
4
Dadurch wird der Bildschirm nicht gelöscht, ich kann trotzdem wieder nach oben scrollen!
Esoterik
2
ctrl + jfunktioniert auch. Könnte auch nützlich sein. stackoverflow.com/a/11993793/4871483
ytpillai
1
Beachten Sie, dass dies ein Python-Tag ist. Nicht versionsspezifisch. Für alle Python 3.x Benutzer ist esprint('\n'*100)
Luke
83

os.system('clear')funktioniert unter Linux. Wenn Sie Windows ausführen, versuchen Sie es os.system('CLS')stattdessen.

Sie müssen das Betriebssystem zuerst wie folgt importieren:

import os
Nadia Alramli
quelle
13
Das os.system ('CLS') funktioniert unter Windows. (Python 2.6). Der resultierende Bildschirm wird gelöscht und zeigt oben nur eine "0" an, von der ich annehme, dass sie der Rückgabewert für CLS ist. Die nächste Zeile enthält die Eingabeaufforderung >>>.
mjv
34
Dies macht einen OS-Aufruf an cls in einer externen Eingabeaufforderung und interagiert nicht mit Idle
Bunglestink
15
Leerlauf ist kein Konsolenfenster. Sowohl clear als auch cls arbeiten in Konsolen- / Terminalfenstern.
Bryan Oakley
15
Die Frage ist "Bildschirm im Leerlauf löschen". Die oben genannten Methoden funktionieren auf meinem Computer sicherlich nicht
Élektra
20
Warum ist das positiv bewertet? Dies wird eine neue Eingabeaufforderung öffnen, löschen und schließen
ytpillai
39

Bei den meisten Antworten wird hier der DOS-Eingabeaufforderungsbildschirm mit Löschbefehlen gelöscht, was nicht die Frage ist. Andere Antworten hier waren das Drucken von Leerzeilen, um einen Löscheffekt des Bildschirms zu zeigen.

Die einfachste Antwort auf diese Frage ist

Es ist nicht möglich, die Python-IDLE-Shell ohne externe Modulintegration zu löschen. Wenn Sie wirklich eine leere, reine, frische Shell erhalten möchten, schließen Sie einfach die vorherige Shell und führen Sie sie erneut aus

Abdul Rehman
quelle
3
Dies ist eine gute, direkte und praktische Antwort auf diese Frage. Leerlauf schließen, Datei offen lassen, Datei erneut ausführen und Leerlauf hat jetzt einen neuen Bildschirm.
Mike_K
@ Mike_K, es kann nützlich sein, aber nie. Im Moment habe ich einen geteilten Bildschirm (ein Buch <|> im Leerlauf). Wenn ich den Leerlauf erneut ausführe, wird der neue Bildschirm an der Standardposition / den Standardabmessungen angezeigt. Es wird also sehr langweilig.
SDLINS
38

ctrl+ Llöscht den Bildschirm unter Ubuntu Linux.

shxfee
quelle
Auch auf Red Hat / Fedora / CentOS
DtechNet
1
Auch unter Windows, wenn Sie IDLEx verwenden. Prost! So glücklich, endlich eine einfache Lösung gefunden zu haben!
John Red
Funktioniert nicht in Ubuntu 18.04. Je weniger schlimmer hier ist die Verwendung CTRL+ Jmehrere Male.
SDLINS
@slinstj, die es insgesamt auf Windows geschlossen
Mubarek
Zu meinem heutigen Hack hinzugefügt! Arbeiten Sie auch wie ein Zauber in MacOS!
xtornasol512
21

Eine Erweiterung zum Löschen der Shell finden Sie in Ausgabe 6143 als "Funktionsanforderung". Diese Erweiterung ist in IdleX enthalten .

Roger
quelle
1
Dies ist eine brillante Erweiterung von Python Idle. Ich danke dir sehr!
Indrajit
19
>>> import os

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

Das ist perfekt. Es wurde auch keine '0' gedruckt.

Derk Smith
quelle
Schön, einfach, macht was es sagt. Oder geben Sie import oseinfach ein, os.system("clear")obwohl die Funktion praktisch ist, wenn Sie den Bildschirm häufig löschen müssen.
Dave Everitt
1
os.system ("clear") hat funktioniert. Das funktioniert bei mir, aber ich muss "cls ()"
eingeben
Als ich dies versuchte, gab die Befehlszeile <function cls at 0x024D25D0> zurück und die Konsole wurde nicht
gelöscht
Beste Antwort bisher
Hallo123
@ericgrosse Sie müssen cls () eingeben, nicht cls
eingeben
9

Es scheint keine Möglichkeit zu geben, den IDLE-Shell-Puffer zu löschen.

Mark Ribau
quelle
1
bugs.python.org/issue6143 hat eine Erweiterung zum Löschen der Shell und ist in IdleX enthalten.
Roger
7

Die Art , wie Befehle in Python 2.4+ auszuführen ist , die verwenden Subprozess Modul. Sie können es auf die gleiche Weise verwenden, wie Sie es verwenden os.system.

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

Wenn Sie dies in der Python-Konsole ausführen, müssen Sie etwas tun, um den Rückgabewert (für entweder os.systemoder subprocess.call) auszublenden , z. B. um ihn einer Variablen zuzuweisen:

cls = subprocess.call("cls", shell=True)
Rudd Zwolinski
quelle
Traceback (letzter Aufruf zuletzt): Datei "<pyshell # 1>", Zeile 1, in <module> subprocess.call ("cls") Datei "C: \ Python26 \ lib \ subprocess.py", Zeile 444, in Rufen Sie return Popen (* popenargs, ** kwargs) .wait () auf. Datei "C: \ Python26 \ lib \ subprocess.py", Zeile 595, in init errread, errwrite) Datei "C: \ Python26 \ lib \ subprocess.py ", Zeile 804, in _execute_child startupinfo) WindowsError: [Fehler 2] Das System kann die angegebene Datei nicht finden
verschlungenes Elysium
1
Hmm .. Das bekomme ich, wenn ich Windows nicht benutze und es daher nicht testen kann. Versuchen Sie subprocess.call ("cls", shell = True)
Rudd Zwolinski
5

Ich benutze gerne:

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

clear()
lfsando
quelle
Sieht so aus, als ob diese Antwort bereits gegeben wurde
OneCricketeer
4

Datei -> Neues Fenster

Im neuen Fenster **

Führen Sie -> Python Shell aus

Das Problem bei dieser Methode ist, dass alle von Ihnen definierten Elemente, z. B. Variablen, gelöscht werden.

Alternativ sollten Sie einfach die Eingabeaufforderung verwenden.

Eingabeaufforderung öffnen

Geben Sie "cd c: \ python27" ein.

Geben Sie "python example.py" ein. Sie müssen dies mit IDLE bearbeiten, wenn es sich nicht im interaktiven Modus befindet. Wenn Sie sich in einer Python-Shell befinden, klicken Sie auf Datei -> Neues Fenster.

Beachten Sie, dass sich die Datei example.py im selben Verzeichnis wie C: \ python27 oder in dem Verzeichnis befinden muss, in dem Python installiert ist.

Von hier aus drücken Sie einfach die Aufwärtspfeiltaste auf Ihrer Tastatur. Sie bearbeiten einfach example.py, verwenden STRG + S, kehren dann zur Eingabeaufforderung zurück, drücken die Pfeiltaste NACH OBEN und drücken die Eingabetaste.

Wenn die Eingabeaufforderung zu voll wird, geben Sie einfach "clr" ein.

Der Befehl "clr" funktioniert nur mit der Eingabeaufforderung, nicht mit IDLE.

anonymer Feigling
quelle
3
Ich sage nur, aber ich glaube, die Frage lautet: Wie löscht man den Bildschirm im Leerlauf von innen nach dem PYTHON-Skript?
Élektra
Das Starten einer neuen Datei und das Ausführen der Python-Shell schien die einzige Option zu sein, die mir zur Verfügung stand. Sonst funktionierte nichts. Vielen Dank!
Sergey Zakharov
4

Es scheint, dass es keinen direkten Weg gibt, die IDLE-Konsole zu löschen.

Eine Möglichkeit besteht darin, exit () als letzten Befehl in meinem Python-Skript (.py) zu verwenden. Wenn ich das Skript ausführe, wird immer eine neue Konsole geöffnet und vor dem Beenden aufgefordert.

Oberseite: Die Konsole wird jedes Mal neu gestartet, wenn das Skript ausgeführt wird. Nachteil: Die Konsole wird jedes Mal neu gestartet, wenn das Skript ausgeführt wird.

Sandeep Gaadhe
quelle
2

Sie können ein AutoHotKey- Skript erstellen .

So setzen Sie Strg-R auf einen Hotkey, um die Shell zu löschen:

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

Installieren Sie einfach AutoHotKey, fügen Sie das Obige in eine Datei mit dem Namen idle_clear.ahk ein, führen Sie die Datei aus, und Ihr Hotkey ist aktiv.

Abgenutzt
quelle
2

Keine dieser Lösungen funktionierte für mich unter Windows 7 und in IDLE. Wurde mit PowerShell abgeschlossen, führte Python darin aus und beendete das Programm, um "cls" in PowerShell aufzurufen, um das Fenster zu löschen.

Nachteile: Angenommen, Python befindet sich bereits in der Variablen PATH. Dadurch werden auch Ihre Python-Variablen gelöscht (dies gilt jedoch auch für den Neustart der Shell).

PROS: Behält alle von Ihnen vorgenommenen Fensteranpassungen bei (Farbe, Schriftgröße).

Draghon
quelle
2

Es scheint unmöglich zu sein, dies ohne eine externe Bibliothek zu tun.

Eine alternative Möglichkeit, wenn Sie Windows verwenden und die Shell nicht jedes Mal öffnen und schließen möchten, wenn Sie sie löschen möchten, ist die Verwendung der Windows-Eingabeaufforderung.

  • Geben Sie ein pythonund drücken Sie die Eingabetaste, um die Windows-Eingabeaufforderung in den Python-Leerlauf zu versetzen (stellen Sie sicher, dass Python installiert ist).

  • Geben Sie ein quit()und drücken Sie die Eingabetaste, um zur Windows-Eingabeaufforderung zurückzukehren.

  • Geben Sie ein clsund drücken Sie die Eingabetaste, um die Eingabeaufforderung / Windows-Shell zu löschen.

Ari
quelle
2

Ich würde Ihnen empfehlen, Thonny IDE zu verwenden für Python zu verwenden. Die Shell verfügt über die Option "Shell löschen" und Sie können auch Variablen verfolgen, die in einer separaten Liste erstellt wurden. Das Debuggen ist selbst im Vergleich zu modernen IDEs sehr gut. Sie können auch Code in eine Python-Datei schreiben und an derselben Stelle auf die Shell zugreifen.

Und es ist leicht!

Zaheer
quelle
2

" Befehl + L " für MAC OS X.

" control + L " für Ubuntu

Löscht die letzte Zeile der interaktiven Sitzung

Darshan NS
quelle
Ich wusste nichts über diese Funktion, danke Schreiben Sie immer, was Ihr Befehl tut.
Priyank Pathak
1

Wie mark.ribau sagte, scheint es keine Möglichkeit zu geben, das Text-Widget im Leerlauf zu löschen. Man sollte das EditorWindow.pyModul bearbeiten und eine Methode und einen Menüpunkt in der EditorWindow-Klasse hinzufügen, die Folgendes tun:

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

und vielleicht noch etwas Tag-Management, von dem ich nichts weiß.

tzot
quelle
1

Der beste Weg, dies unter Windows zu tun, ist die Verwendung der Eingabeaufforderung 'cmd' und der Zugriff auf das Python-Verzeichnis. Die Eingabeaufforderung befindet sich im Startmenü> Ausführen> 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
Al-Ani
quelle
2
Ich sage nur, aber ich glaube, die Frage lautet: Wie löscht man den Bildschirm im Leerlauf? (Hervorhebung auf IN IDLE)
Élektra
1

benutze das

for num in range(1,100):
    print("\n")
Tauseef
quelle
Funktioniert, aber Sie haben eine unglaublich lange Bildlaufentfernung, wenn Sie etwas von früher sehen möchten.
Élektra
Versuchen Sie, die Reichweite (1,10) zu verringern:
Tauseef
@ Xenon Aber wenn die Idee ist, das Fenster zu löschen, sollte der Benutzer nicht in der Lage sein, etwas von früher anzuzeigen.
Sam
0

Ihr Screenshot zeigt, dass Sie IDLE verwenden. clsIch clearwerde nicht für dich arbeiten.

orip
quelle
5
Das ist keine gute Antwort. OP fragte nicht nach "Was hilft mir nicht, Pythons IDLE-Fenster zu löschen".
DeFazer
-1
from subprocess import call as c

def cls():

    c("cls",shell=True)

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

cls()

Wenn Sie die Konsole löschen möchten, rufen Sie die Funktion cls auf. Beachten Sie jedoch, dass diese Funktion den Bildschirm in Windows nur löscht, wenn Sie Python Script mit der Eingabeaufforderung cmd ausführen. Wenn Sie IDLE ausführen, wird der Puffer nicht gelöscht.

Akash Rana
quelle
2
Ich sage nur, aber ich glaube, die Frage lautet: Wie löscht man den Bildschirm im Leerlauf von innen nach dem PYTHON-Skript?
Élektra
-1

Ich habe es mit:

import console 
console.clear()

Wenn Sie dies in Ihrem Skript tun möchten oder sich in der Konsole befinden, tippen Sie einfach auf clear () und drücken Sie die Eingabetaste. Das funktioniert auf Pyto auf dem iPhone. Dies kann jedoch von der Konsole abhängen.

Bryan Aneux
quelle
Es gibt kein consoleModul in IDLE.
AKX
Es heißt kein Konsolenmodul.
Musa
-2

Das funktioniert bei mir unter Windows:

print chr(12)

Joel Vroom
quelle
chr wird im IDLE-Terminal nicht erkannt
wbadry
Danke Joel. Hat auch für mich gearbeitet.
Funktioniert auch für mich unter Windows, Spyder IDE, und scheint der einfachste Code zu sein, um das gewünschte Ergebnis zu erzielen. {chr (12) is formfeed}
Ian
-4

Wenn Sie das Terminal verwenden (ich verwende Ubuntu), verwenden Sie einfach die Kombination von CTRL+ lvon der Tastatur, um das Python-Skript zu löschen, auch wenn es das Terminal-Skript löscht ...

Arbaaz
quelle
1
Nur sagen, aber die Frage ist, den Bildschirm im Leerlauf von einem PYTHON-Skript zu löschen.
Élektra
Das OP hat IDLE angegeben.
Wbadry
-5

Sie müssen dazu keine eigene Funktion schreiben! Python verfügt über eine integrierte Clear-Funktion.

Geben Sie Folgendes in die Eingabeaufforderung ein:

shell.clear()

Wenn Sie IPythonfür Windows verwenden, ist es

cls()
Michael Vogel
quelle
4
Ist dafür ein Import erforderlich, weil er bei mir nicht funktioniert hat? Wenn es sich um einen Import handelt, sollten Sie ihn in Ihre Antwort aufnehmen. Außerdem geht es darum, die Eingabeaufforderung IN IDLE zu löschen .
Élektra