So löschen Sie die von Python ausgegebenen Zeichen

Code zum Löschen der aktuellen Zeile

del_line.py


import sys
sys.stdout.write("\033[2K\033[G")
sys.stdout.flush()

Anwendungsbeispiel

sample.py


import sys, time

for i in range(10):
    s = str(i)*(10-i)
    sys.stdout.write("\033[2K\033[G%s" % s)
    sys.stdout.flush()
    time.sleep(0.5)
print()

Die nächste Ausgabe wird alle 0,5 Sekunden in derselben Zeile angezeigt, wodurch die vorherige Ausgabe gelöscht wird.

0000000000
111111111
22222222
3333333
444444
55555
6666
777
88
9

Kommentar

Sie können CSI verwenden, um den Konsolenbildschirm für die Standardausgabe und die Fehlerausgabe zu steuern. Referenz: https://en.wikipedia.org/wiki/ANSI_escape_code Zusätzlich zum Löschen von Zeichen können Sie den Cursor bewegen und die Farbe der Zeichen ändern.

Die zweite Zeile \ 033 [2K von del_line.py entspricht" EL - In Zeile löschen "in den CSI-Codes des obigen Wikis und ist ein Befehl zum Löschen der Zeile mit dem Cursor. Wenn Sie CSI mit der Meldung verwenden, dass \ 033 [ CSI verwendet, wird es zuerst ausgegeben. Die folgende "2" entspricht dem Argument.

Es wird sein. del_line.py löscht die gesamte Zeile. Das letzte "K" bestimmt den Typ der CSI.

Wie im Wiki erläutert, hat "EL - In Zeile löschen" die Eigenschaft, die Cursorposition nicht zu ändern. Wenn Sie also Zeichen nach der gelöschten Zeile ausgeben möchten, müssen Sie den Cursor manuell an den Zeilenanfang bewegen. Es gibt. Dies kann mit "CHA - Cursor Horizontal Absolute" erreicht werden. Die Erklärung im Wiki lautet "Bewegt den Cursor in Spalte n (Standard 1)". Wenn Sie also den CSI-Code mit n auf 1 setzen oder weglassen, bewegt sich der Cursor in die erste Spalte (Zeilenanfang). Der CSI-Code lautet "CSI n G". Ersetzen Sie daher den CSI-Teil durch "\ 033 [", um "\ 033 [G" zu erhalten.

Ursprünglich möchte ich, dass die Zeichen so verschwinden, wie sie sind, aber in Python werden sie bei der Ausgabe von Zeichen einmal im Puffer gespeichert und zum Zeitpunkt des Zeilenumbruchs sofort ausgegeben. Selbst wenn Sie beabsichtigen, den CSI-Code zum Löschen von Zeichen im Quellcode auszugeben, wird er daher nicht auf dem tatsächlichen Bildschirm angezeigt. Daher gibt sys.stdout.flush () die im Puffer gespeicherte Zeichenfolge explizit aus und spiegelt sie auf dem Bildschirm wider.

Mit den oben genannten können die an die Konsole ausgegebenen Zeichen gelöscht werden.

Beim Löschen nur eines Zeichens

print("abc\033[1D\033[K")

Ausgabeergebnis

ab

\ 033 [1D bewegt den Cursor nach links und \ 033 [K löscht sich vom Cursor bis zum Ende der Zeile.

Ergänzung

--Wenn die Länge der fortlaufend anzuzeigenden Zeichenketten gleich ist oder die nachfolgende Ausgabe länger ist, können Sie sie überschreiben, indem Sie den Cursor einfach ohne den Befehl zum Löschen an den Zeilenanfang bewegen.

Recommended Posts

So löschen Sie die von Python ausgegebenen Zeichen
[Python] So geben Sie Listenwerte der Reihe nach aus
So erhalten Sie die Python-Version
So überschreiben Sie die Ausgabe auf die Konsole
So wechseln Sie die Konfigurationsdatei, die von Python gelesen werden soll
So löschen Sie Python 2.x auf einem Mac.
So erhalten Sie eine farbige Ausgabe an die Konsole
Verwendung der C-Bibliothek in Python
So installieren Sie Python
[Python] So ändern Sie das Datumsformat (Anzeigeformat)
[Algorithmus x Python] Verwendung der Liste
So erhalten Sie die Dateien im Ordner [Python]
[Python] So sortieren Sie Instanzen nach Instanzvariablen
So geben Sie "Ketsumaimo" standardmäßig in Python aus
[Python] Umgang mit japanischen Zeichen mit openCV
python So benachrichtigen Sie automatisch per Telefon, wenn das System ausfällt
[CentOS8] So geben Sie die Standard-Python-Ausgabe in das Systemd-Protokoll aus
Sortieren durch Angabe einer Spalte im Python Numpy-Array.
Lesen aller in * .py enthaltenen Klassen in dem von Python angegebenen Verzeichnis
[Python] So sortieren Sie nach dem N-ten M-ten Element eines mehrdimensionalen Arrays
[Python] So entfernen Sie doppelte Werte aus der Liste
So rufen Sie den n-ten größten Wert in Python ab
So erhalten Sie den Variablennamen selbst in Python
Überlegen Sie, wie Sie Python auf Ihrem iPad programmieren können
So ermitteln Sie die Anzahl der Stellen in Python
[Einführung in Python] Wie iteriere ich mit der Bereichsfunktion?
Wie Sie das aktuelle Verzeichnis in Python in Blender kennen
[Wiedereinführung in Python] Importieren über das übergeordnete Verzeichnis
Verwendung von Raspeye Relay Module Python
Option [Python] zum Deaktivieren der Ausgabe von click.progressbar
[Python] So legen Sie den Download-Speicherort mit youtube-dl fest
Lesen Sie die XML-Datei anhand des Python-Tutorials
So entfernen Sie verstümmelte Zeichen im Matplotlib-Ausgabebild
[Python] Verwendung der Diagrammerstellungsbibliothek Altair
So finden Sie heraus, welche Version von Java Maven verwendet wird
Verschieben Sie die Alphabetzeichenfolge in Python um N Zeichen
[Einführung in die Udemy Python3 + -Anwendung] 27. Verwendung des Wörterbuchs
So speichern Sie eine von Python gekratzte Tabelle in CSV
[Einführung in die Udemy Python3 + -Anwendung] 30. Verwendung des Sets
[Python] Zusammenfassung, wie die Farbe der Figur angegeben wird
Verwendung des in Lobe in Python erlernten Modells
[Einführung in Python] Wie stoppe ich die Schleife mit break?
[Python] So schreiben Sie den Tabellenstil mit python-pptx um [python-pptx]
Wie man Python auf Android genießt !! Programmieren für unterwegs !!
So heben Sie den von pytest-django verwendeten DB-Namen auf
So installieren Sie Python [Windows]
python3: Verwendung der Flasche (2)
Verwendung des Generators
So aktualisieren Sie Pythons Tkinter auf 8.6
Wie benutzt man Python Argparse?
[Python] Verwendung von checkio
So führen Sie Notepad ++ Python aus
So ändern Sie die Python-Version
Wie man in Python entwickelt
[Python] Wie man Skalar beurteilt
[Python] Verwendung von input ()
Wie benutzt man den Dekorateur?
Wie benutzt man Python Lambda?
[Python] Verwendung von virtualenv
python3: Verwendung der Flasche (3)