497 Stimmen

Wie kann man die Interpreterkonsole löschen?

Wie die meisten Python-Entwickler habe ich normalerweise ein Konsolenfenster geöffnet, in dem der Python-Interpreter läuft, um Befehle zu testen, dir() Zeug, help() stuff , usw.

Wie bei jeder Konsole wird der sichtbare Bestand an vergangenen Befehlen und Ausdrucken nach einer Weile unübersichtlich und manchmal auch verwirrend, wenn man denselben Befehl mehrmals ausführt. Ich frage mich, ob und wie man die Konsole des Python-Interpreters löschen kann.

Ich habe gehört, dass man einen Systemaufruf machen und entweder cls unter Windows oder clear unter Linux, aber ich hatte gehofft, dass es etwas gibt, das ich dem Interpreter selbst befehlen kann.

Anmerkung: Ich arbeite unter Windows, also Ctrl+L funktioniert nicht.

644voto

Ryan Duffield Punkte 17639

Wie Sie bereits erwähnt haben, können Sie einen Systemaufruf durchführen:

Für Windows:

>>> import os
>>> clear = lambda: os.system('cls')
>>> clear()

Für Linux wäre dies der Fall:

>>> import os
>>> clear = lambda: os.system('clear')
>>> clear()

273voto

popcnt Punkte 4229

Hier etwas Praktisches, das ein wenig plattformübergreifender ist

import os

def cls():
    os.system('cls' if os.name=='nt' else 'clear')

# now, to clear the screen
cls()

108voto

Denis Rasulev Punkte 3156

Das ist das Einfachste, was Sie tun können, und es erfordert keine zusätzlichen Bibliotheken. Es löscht den Bildschirm und gibt >>> in die linke obere Ecke.

print("\033[H\033[J", end="")

UPDATE 1:

Da diese Antwort einige Aufmerksamkeit erhält, möchten Sie vielleicht wissen, wie sie funktioniert. Der obige Befehl druckt ANSI-Escape-Codes :

  • \033 steht für ESC (ANSI-Wert 27).

  • \033[ ist eine besondere Escape-Sequenz genannt. Kontrolle der Sequenz Einführhilfe (CSI).

  • \033[H bewegt den Cursor in die linke obere Ecke des Bildschirms.

  • \033[J löscht den Bildschirm vom Cursor bis zum Ende von des Bildschirms.

Optionaler Parameter end="" vermeidet die Ausgabe von Zeilenumbrüchen nach der Ausführung dieser Befehle, so dass >>> bleibt in der obersten Zeile.

UPDATE 2:

Vielleicht möchten Sie den obigen Befehl um einen zusätzlichen Parameter erweitern - x (vor J ):

print("\033[H\033[xJ", end="")
  • Si x 1 ist, wird sie vom Cursor bis zum Anfang des Bildschirms gelöscht.
  • Si x 2 ist, wird der gesamte Bildschirm gelöscht und der Cursor auf oben links.
  • Si x 3 ist, wird die gesamte Bildschirm und alle im Scrollback-Puffer gespeicherten Zeilen löschen .

Mit diesem Befehl wird also alles gelöscht, auch der Puffer:

print("\033[H\033[3J", end="")

COMMAND LINE:

Um den Bildschirm in einer Shell (Konsole / Terminal) zu löschen, können Sie denselben Befehl verwenden. Um den gesamten Bildschirm zu löschen und alle im Scrollback-Puffer gespeicherten Zeilen zu löschen, setzen Sie 3 vor J :

printf "\033[H\033[3J"

oder erstellen Sie einen Alias:

alias cls='printf "\033[H\033[3J"'

100voto

Kenan Banks Punkte 196831

Nun, hier ist ein schneller Hack:

>>> clear = "\n" * 100
>>> print clear
>>> ...do some other stuff...
>>> print clear

Um sich die Tipparbeit zu ersparen, können Sie diese Datei auch in Ihren Python-Suchpfad aufnehmen:

# wiper.py
class Wipe(object):
    def __repr__(self):
        return '\n'*1000

wipe = Wipe()

Dann können Sie dies vom Interpreter aus tun, wie Sie wollen :)

>>> from wiper import wipe
>>> wipe
>>> wipe
>>> wipe

52voto

Vlad Bezden Punkte 71128

Es gibt mehrere Möglichkeiten, dies unter Windows zu tun:

1. Tastaturkürzel verwenden:

Press CTRL + L

2. Verwendung der Systemaufrufmethode:

import os
cls = lambda: os.system('cls')
cls()

3. Mit neuer Zeile 100 Mal drucken:

cls = lambda: print('\n'*100)
cls()

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X