Wie die meisten Python-Entwickler lasse ich normalerweise ein Konsolenfenster geöffnet, in dem der Python-Interpreter ausgeführt wird, um Befehle, dir()
Dinge help() stuff
usw. zu testen .
Wie bei jeder Konsole wird der sichtbare Rückstand früherer Befehle und Ausdrucke nach einer Weile unübersichtlich und manchmal verwirrend, wenn derselbe Befehl mehrmals ausgeführt wird. Ich frage mich, ob und wie die Python-Interpreter-Konsole gelöscht werden soll.
Ich habe von einem Systemaufruf gehört und entweder cls
unter Windows oder clear
Linux, aber ich hatte gehofft, dass ich dem Interpreter selbst befehlen könnte, etwas zu tun.
Hinweis: Ich verwende Windows, Ctrl+L
funktioniert also nicht.
Antworten:
Wie Sie bereits erwähnt haben, können Sie einen Systemaufruf ausführen:
Für Windows
Für Linux wird das Lambda
quelle
def
? Warum ein verwenden,lambda
wenn adef
klarer ist?clear = lambda: os.system('cls') or None
hier etwas handliches, das etwas plattformübergreifender ist
quelle
import os
os.system('cls')
Hier ist ein kurzer Hack:
Oder fügen Sie diese Datei in Ihren Python-Suchpfad ein, um einige Eingaben zu sparen:
Dann können Sie dies vom Dolmetscher aus tun, was Sie wollen :)
quelle
"\x1B[H\x1B[J"
clear
undcls
tun. Dies ist der Weg, um es zu tun. (Nur ein Druck oder eine Funktion mit dem Druckaufruf, die natürlich keiner "klaren" Zeichenfolge zugeordnet ist)clear
eine Anweisung aus, die den Bildschirm löscht. Ohne den Scrollback-Puffer zu verwerfen. Auf meinem System gibt es diese Steuersequenz aus :\33[3J\33[H\33[2J
. Das heißt :[erase scrollback]
[reset cursor position]
[erase screen]
. Das[erase scrollback]
kann mit weggelassen werdenclear -x
.Obwohl dies eine ältere Frage ist, dachte ich, ich würde etwas beitragen, das die meiner Meinung nach besten der anderen Antworten zusammenfasst, und eine eigene Falte hinzufügen, indem ich vorschlage, dass Sie diese Befehle in eine Datei einfügen und Ihr PYTHONSTARTUP festlegen Umgebungsvariable, um darauf zu verweisen. Da ich im Moment unter Windows bin, ist es auf diese Weise leicht voreingenommen, könnte aber leicht in eine andere Richtung geneigt werden.
In den folgenden Artikeln wurde beschrieben, wie Umgebungsvariablen unter Windows festgelegt werden:
Wann sys.path.append verwendet und% PYTHONPATH% geändert wird, reicht aus.
Verwalten von Umgebungsvariablen in Windows XP
Konfigurieren von System- und Benutzerumgebungsvariablen
Verwenden von Global System Umgebungsvariablen in Windows
Übrigens, setzen Sie keine Anführungszeichen um den Pfad zur Datei, auch wenn sie Leerzeichen enthält.
Wie auch immer, hier ist meine Einstellung zum Code, der in das Python-Startskript eingefügt (oder zu Ihrem vorhandenen hinzugefügt) werden soll:
Übrigens können Sie auch den
__repr__
Trick von @ Triptych verwenden , umexit()
in just zu wechselnexit
(und das Gleiche gilt für den Aliasquit
):Schließlich, hier ist etwas anderes , das die primäre Interpreter Aufforderung von Änderungen
>>>
zu cwd +>>>
:quelle
__repr__
und / oder auf__str__
diese Weise ist, dass bei>>> vars()
Eingabe an der Interpreter-Konsole alle so definierten Befehle ausgeführt werden. Auf meinem System wurde beispielsweise der Bildschirm gelöscht und die Konsole verlassen. Ichlocals()
und giltglobals()
. Ein einfacher Dekorator um diese Funktionen, der den Namen löscht und ihn nach dem Aufrufen der Funktion neu zuweist, ist eine mögliche Lösung ...Sie haben verschiedene Möglichkeiten, dies unter Windows zu tun:
1. Verwenden der Tastenkombination:
2. Verwenden der Systemaufrufmethode:
3. 100-maliges Drucken neuer Zeilen:
quelle
cls
funktioniert nur unter Windows und macht es Ihrem Programm schwer, plattformübergreifend zu sein. Das Drucken von 100newlines
ist nur ... eww? Und eine Tastenkombination wird im Programm nicht verwendet.Der schnellste und einfachste Weg ist ohne Zweifel Ctrl+ L.
Dies gilt auch für OS X auf dem Terminal.
quelle
Meine Art, dies zu tun, besteht darin, eine Funktion wie folgt zu schreiben:
Rufen Sie dann
clear()
an, um den Bildschirm zu löschen. Dies funktioniert unter Windows, OSX, Linux, BSD ... allen Betriebssystemen.quelle
os.name in ('linux','osx')
und möchten vielleicht auch hinzufügen'posix'
.os.name == 'posix'
sowohl in Python 2.7.9 als auch in 3.4.3Hier ist ein plattformübergreifendes (Windows / Linux / Mac / Wahrscheinlich andere, das Sie in der if-Prüfung hinzufügen können) Versionsausschnitt, den ich erstellt habe, um die in dieser Frage gefundenen Informationen zu kombinieren:
Gleiche Idee, aber mit einem Löffel syntaktischen Zuckers:
quelle
Wischer ist cool, gut daran ist, dass ich nicht '()' darum herum tippen muss. Hier gibt es leichte Abweichungen
Die Verwendung ist recht einfach:
quelle
class cls
.class Cls
seincls
.cls = Cls()
class cls
und dann tuncls=cls()
.Dies ist das Einfachste, was Sie tun können, und es sind keine zusätzlichen Bibliotheken erforderlich. Der Bildschirm wird gelöscht und
>>>
in die obere linke Ecke zurückgekehrt.quelle
für den Mac-Benutzer innerhalb des Python-Konsolentyps
für Windows
quelle
Hier ist die endgültige Lösung , die alle anderen Antworten zusammenführt . Eigenschaften:
Sie können es verwenden , wie Sie möchten:
Sie können es als Modul importieren :
Sie können es als Skript aufrufen :
Es ist wirklich Multiplattform ; wenn es nicht Ihr System erkennen kann
(
ce
,nt
,dos
oderposix
) wird es auf den Druck Leerzeilen zurückgreifen.Sie können die [vollständige] Datei hier herunterladen: https://gist.github.com/3130325
Oder wenn Sie nur nach dem Code suchen:
quelle
Ich benutze iTerm und die native Terminal-App für Mac OS.
Ich drücke einfach ⌘ + k
quelle
Leerlauf verwenden. Es hat viele praktische Funktionen. Ctrl+F6Setzt beispielsweise die Konsole zurück. Das Schließen und Öffnen der Konsole ist eine gute Möglichkeit, sie zu löschen.
quelle
F6
setzt die Idle-Konsole jedochCTRL+F6
nicht zurück. Leider wird der Bildschirm dadurch nicht gelöscht. D'oh! (Python Win32 Idle-Versionen 2.6.2, 2.7.1, 3.2).Ich bin nicht sicher, ob die "Shell" von Windows dies unterstützt, aber unter Linux:
print "\033[2J"
https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_codes
Meiner Meinung
cls
nachos
ist es generell eine schlechte Idee, mit anzurufen. Stellen Sie sich vor, ich schaffe es, den Befehl cls oder clear auf Ihrem System zu ändern, und Sie führen Ihr Skript als Administrator oder Root aus.quelle
Ich verwende MINGW / BASH unter Windows XP, SP3.
(kleben Sie dies in .pythonstartup)
# Meine Strg-L hat bereits funktioniert, aber dies könnte jemand anderem helfen
# die Eingabeaufforderung am unteren Rand des Fensters zu lassen ...
readline importieren
readline.parse_and_bind ('\ Cl: clear-screen')
# Dies funktioniert in BASH, weil ich es auch in .inputrc habe, aber aus irgendeinem
Grund wird es gelöscht, wenn ich in Python
readline.parse_and_bind gehe ('\ Cy: kill-ganze-Linie')
Ich konnte es nicht mehr ertragen, 'exit ()' zu tippen und war begeistert von Martineaus / Triptychons Tricks:
Ich habe es allerdings leicht behandelt (steckte es in .pythonstartup)
quelle
Der OS-Befehl
clear
unter Linux undcls
Windows gibt eine "magische Zeichenfolge" aus, die Sie einfach drucken können. Um die Zeichenfolge abzurufen, führen Sie den Befehl mit popen aus und speichern Sie ihn zur späteren Verwendung in einer Variablen:Auf meinem Computer ist die Zeichenfolge
'\x1b[H\x1b[2J'
.quelle
\x1b[H
bedeutet "Bewegen Sie den Cursor in die obere linke Ecke",\x1b[2J
bedeutet "den gesamten Bildschirm löschen". 2) In Windows wird ANSI nicht erkannt, daher gibt es wahrscheinlich keine magische Zeichenfolge.Hier sind zwei gute Möglichkeiten, dies zu tun:
1.
2.
quelle
Am einfachsten ist es, das OS-Modul zu verwenden
quelle
Dies sollte Cross - Plattform sein, und verwendet auch die bevorzugte
subprocess.call
stattos.system
gemäß demos.system
docs . Sollte in Python funktionieren> = 2.4.quelle
Wie wäre es damit für eine klare
Das ist ungefähr so kurz wie möglich!
quelle
Ich bin neu in Python (wirklich sehr, sehr neu) und in einem der Bücher, die ich lese, um mich mit der Sprache vertraut zu machen, in der sie lernen, wie man diese kleine Funktion erstellt, um die Konsole vom sichtbaren Rückstand und früheren Befehlen und Ausdrucken zu befreien:
Shell öffnen / Neues Dokument erstellen / Funktion wie folgt erstellen:
Speichern Sie es im lib-Ordner in Ihrem Python-Verzeichnis (meins ist C: \ Python33 \ Lib). Wenn Sie das nächste Mal Ihre Konsole löschen müssen, rufen Sie einfach die Funktion auf mit:
das ist es. PS: Sie können Ihre Funktion so benennen, wie Sie möchten. Ich habe Leute gesehen, die "Wischer", "Wischen" und Variationen benutzt haben.
quelle
Ich verwende Spyder (Python 2.7) und zum Reinigen der Interpreter-Konsole verwende ich entweder
%klar
Dadurch wird die Befehlszeile nach oben verschoben, und die vorherigen alten Befehle werden nicht angezeigt.
oder ich klicke in der Konsolenumgebung auf "Option" und wähle "Kernel neu starten", um alles zu entfernen.
quelle
Ich bin vielleicht zu spät dran, aber hier ist eine sehr einfache Möglichkeit, dies zu tun
Art:
Was auch immer Sie den Bildschirm löschen möchten, geben Sie einfach Ihren Code ein
Bester Weg möglich! (Bildnachweis: https://www.youtube.com/watch?annotation_id=annotation_3770292585&feature=iv&src_vid=bguKhMnvmb8&v=LtGEp9c6Z-U )
quelle
Einfach eintreten
quelle
Wenn es auf einem Mac ist, sollte ein einfacher
cmd + k
den Trick machen.quelle
Wenn Sie dies nicht über Code tun müssen, drücken Sie einfach STRG + L.
quelle
Arch Linux (getestet
xfce4-terminal
mit Python 3):... hinzugefügt zu
~/.pythonrc
clear()
löscht den Bildschirmwipe()
löscht den gesamten Terminalpufferquelle
EDIT: Ich habe gerade "Windows" gelesen, dies ist für Linux-Benutzer, sorry.
In Bash:
Speichern Sie es als "whatyouwant.sh", chmod + x es dann ausführen:
oder etwas anderes als Python (Leerlauf, was auch immer). Hier werden Sie gefragt, ob Sie tatsächlich beenden möchten, wenn nicht, wird Python erneut ausgeführt (oder der Befehl, den Sie als Parameter angegeben haben).
Dadurch werden alle Bildschirme und alle Variablen / Objekte / alles gelöscht, was Sie in Python erstellt / importiert haben.
Geben Sie in Python einfach exit () ein, wenn Sie beenden möchten.
quelle
OK, dies ist eine viel weniger technische Antwort, aber ich verwende das Python-Plugin für Notepad ++ und es stellt sich heraus, dass Sie die Konsole einfach manuell löschen können, indem Sie mit der rechten Maustaste darauf klicken und auf "Löschen" klicken. Hoffe das hilft jemandem da draußen!
quelle