Nur eine kurze Frage:
Wie löscht man den Bildschirm in der Shell? Ich habe Wege gesehen wie:
import os
os.system('cls')
Dies öffnet nur das Windows-Cmd, löscht den Bildschirm und schließt, aber ich möchte, dass das Shell-Fenster gelöscht wird
(PS: Ich weiß nicht, dass dies hilft, aber ich verwende Version 3.3.2 von Python).
Danke :)
Antworten:
Unter macOS / OS X können Sie das Unterprozessmodul verwenden und 'cls' über die Shell aufrufen:
Ersetzen Sie die 2. Zeile durch: '0' wird oben im Fenster nicht angezeigt:
Für Linux müssen Sie den
cls
Befehl durch ersetzenclear
quelle
import subprocess as sp sp.call('clear',shell=True)
was funktioniert, außer dass sich0
oben im Terminalfenster eine befindet.ctrl+L
sp.call('cls', shell=True);
Was ist mit der Verknüpfung CTRL+ L?
Es funktioniert für alle Shells, z. B. Python, Bash, MySQL, MATLAB usw.
quelle
quelle
os.system('clear')
für Mac OS X-Terminals (bestätigt, dass sie mit der Standard-Shell funktionierenbash
, und auch fürcsh
).Die Art von Dingen, nach denen Sie suchen, finden Sie im Curses-Modul.
dh
Wichtige Notiz
Wichtig ist, dass Sie vor jedem Beenden das Terminal auf einen normalen Modus zurücksetzen müssen. Dies kann mit den folgenden Zeilen erfolgen:
Wenn Sie dies nicht tun, werden Sie alle möglichen seltsamen Verhaltensweisen bekommen. Um dies sicherzustellen, würde ich empfehlen, das atexit-Modul zu verwenden, etwa:
Wird wahrscheinlich gut tun.
quelle
stdscr = curses.initscr()
Bildschirm gelöscht undstdscr.clear()
nichts getan . Mit Python3.4 wird derstdscr = curses.initscr()
Bildschirm zwar gelöscht, die Fähigkeit des Terminals zur Verarbeitung von Zeilenumbrüchen wird jedoch beeinträchtigt. Wenn ich wiederholt die Eingabetaste drücke, wird Folgendes angezeigt:>>> >>> >>> >>>
und so weiter. Ich kann immer noch Befehle eingeben, aber sie werden nicht angezeigt. Auch dieses Verhalten bleibt auch beiexit()
Python bestehen. VERWENDUNG VERMEIDEN!curses
Modul Kompatibilitätsprobleme haben könnte (Windows vs. Mac vs. Linux)? Ich kann bestätigen, dass dieses Problem zumindest auf zwei verschiedenen Mac-Terminals auftritt. Das Verhalten bleibt in BASH bestehen, nicht jedoch in CSH. Hmm ... Denkst du, ich sollte den Fluchentwickler oder den Shell-Entwickler kontaktieren oder einfach die SO-Community fragen? Danke noch einmal!Hier sind einige Optionen, die Sie unter Windows verwenden können
Erste Wahl:
Zweite Option:
Dritte Option, wenn Sie sich im Python REPL-Fenster befinden:
quelle
Es ist nicht nur eine rundum großartige CLI-Bibliothek, sondern
click
bietet auch eine plattformunabhängigeclear()
Funktion:quelle
Diese Funktion funktioniert unter jedem Betriebssystem (Unix, Linux, MacOS und Windows)
Python 2 und Python 3
In Windows lautet der Befehl
cls
, in Unix-ähnlichen Systemen der Befehlclear
.platform.system()
Gibt den Plattformnamen zurück. Ex.'Darwin'
für macOS.subprocess.call()
führt einen Systemaufruf durch. Ex.subprocess.call(['ls','-l'])
quelle
Wenn Sie ein Linux-Terminal verwenden, um auf Python zuzugreifen, ist cntrl + l die beste Lösung, um den Bildschirm zu löschen
quelle
Ich verwende eine Klasse, die nur eine der oben genannten Methoden hinter den Kulissen verwendet. Ich habe festgestellt, dass sie unter Windows und Linux funktioniert. Ich verwende sie jedoch gerne, weil es einfacher ist, clear () anstelle von system ('clear') einzugeben. ) oder os.system ('clear')
und dann, wenn Sie die Shell löschen möchten:
quelle
Eine einfachere Möglichkeit, einen Bildschirm in Python zu löschen, ist die Verwendung von Ctrl+, Lobwohl dies sowohl für die Shell als auch für andere Programme funktioniert.
quelle
Mit Windows 10 und Pyhton3.5 habe ich viele Codes getestet und nichts hat mir mehr geholfen als dies:
Definieren Sie zunächst eine einfache Funktion. Diese Funktion druckt 50 Zeilenumbrüche. (Die Zahl 50 hängt davon ab, wie viele Zeilen Sie auf Ihrem Bildschirm sehen können, damit Sie diese Zahl ändern können.)
Rufen Sie es dann einfach so oft an, wie Sie möchten oder brauchen
quelle
Command+K
funktioniert gut in OSX, um den Bildschirm zu löschen.Shift+Command+K
um nur den Scrollback-Puffer zu löschen.quelle
quelle
Mit dem Unterprozess können Sie "cls" für Shell aufrufen.
Das ist so einfach wie ich es machen kann. Hoffe es funktioniert bei dir!
quelle
Sie können Windows- oder Linux-Betriebssysteme verwenden
Sie können das Unterprozessmodul verwenden
quelle
os.system('cls')
funktioniert gut, wenn ich sie öffne. Es wird im cmd-Stil geöffnet.quelle
Anstatt alle Flüche zu importieren oder nur um ein Steuerzeichen zu erhalten, können Sie einfach (unter Linux / macOS) Folgendes verwenden:
(Quelle: Terminal in Python löschen )
quelle
Hier erfahren Sie, wie Sie Ihre eigenen erstellen
cls
oderclear
Befehl Befehl erstellen, der funktioniert, ohne explizit eine Funktion aufzurufen!Wir werden die Tatsache ausnutzen, dass die Python-Konsole aufruft
repr()
, um Objekte auf dem Bildschirm anzuzeigen. Dies ist besonders nützlich, wenn Sie über eine eigene angepasste Python-Shell verfügen (-i
z. B. mit der Option) und ein vorinstalliertes Skript dafür haben. Das brauchen Sie:Verwenden Sie
clear
anstelle von,cls
wenn Sie unter Linux sind (sowohl imos
Befehl als auch im Variablennamen)!Wenn Sie jetzt nur schreiben
cls
oderclear
in die Konsole - es wird es löschen! Nicht einmalcls()
oderclear()
- nur die Rohvariable. Dies liegt daran, dass Python aufruftrepr(cls)
, um es auszudrucken, was wiederum unsere__repr__
Funktion auslöst .Lassen Sie es uns testen:
Und der Bildschirm ist klar!
Zur Verdeutlichung muss der obige Code entweder wie folgt in die Konsole importiert werden
Oder direkt vorladen mit etwas wie:
quelle
Das ist der beste Weg:
quelle
Für Python IDLE 3.8.1 können Sie die Shell neu starten
STRG + F6
Im Menü Klicken Sie auf das Menü Shell. Klicken Sie dann auf die Option Shell neu starten.
quelle