Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich in Python frühere Druckausgaben in derselben Zeile überschreiben?

Wie kann ich in Python frühere Druckausgaben in derselben Zeile überschreiben?

Susan Sarandon
Susan SarandonOriginal
2024-12-08 18:20:11363Durchsuche

How Can I Overwrite Previous Print Outputs on the Same Line in Python?

Vorherige Druckausgaben in derselben Zeile überschreiben

Bei der Programmierung kommt es häufig zu Situationen, in denen Sie einen vorhandenen angezeigten Wert aktualisieren müssen die Standardausgabe (stdout), ohne eine neue Zeile hinzuzufügen. Betrachten Sie den folgenden Python-Code:

for x in range(10):
    print(x)

Dieser Code gibt die Zahlen 1 bis 10 in separaten Zeilen aus. Um den vorherigen Wert zu überschreiben und durch den neuen Wert in derselben Zeile zu ersetzen, können Sie die folgenden Techniken verwenden:

Einfache Version:

Verwenden Sie den Wagenrücklauf ( 'r')-Zeichen, um zum Zeilenanfang zurückzukehren, ohne zur nächsten Zeile zu wechseln.

Python 3:

for x in range(10):
    print(x, end='\r')
print()

Python 2.7 Vorwärtskompatibel:

from __future__ import print_function
for x in range(10):
    print(x, end='\r')
print()

Python 2.7:

for x in range(10):
    print '{}\r'.format(x),
print

Python 2.0-2.6:

for x in range(10):
    print '{0}\r'.format(x),
print

In diesen Beispielen unterdrückt das abschließende Komma nach der print-Anweisung den Zeilenumbruch. Die endgültige Druckanweisung geht zur nächsten Zeile über und stellt sicher, dass Ihre Eingabeaufforderung Ihre Ausgabe nicht überschreibt.

Zeilenreinigung:

Wenn Sie nicht garantieren können, dass die neue Zeile Wenn der Text nicht kürzer als die vorhandene Zeile ist, können Sie die Escape-Sequenz „Clear to end of line“ „x1b[1K“ („x1b“ =) verwenden ESC):

for x in range(75):
    print('*' * (75 - x), x, end='\x1b[1K\r')
print()

Langer Zeilenumbruch:

Bei den oben genannten Methoden wird davon ausgegangen, dass Sie nicht über die Zeilenlänge hinaus schreiben. Der Wagenrücklauf führt nur zum Anfang der aktuellen Zeile zurück. Wenn Ihre Ausgabe daher die Zeilenlänge überschreitet, löschen Sie nur die letzte Zeile.

Um dieses Problem zu mildern und zu verhindern, dass der Cursor in die nächste Zeile springt, können Sie den Zeilenumbruch deaktivieren:

print('\x1b[7l', end='')    # Disable line wrapping
print('\x1b[7h', end='')    # Re-enable line wrapping

Bitte beachten Sie, dass Sie den Zeilenumbruch am Ende des Codeblocks manuell wieder aktivieren müssen, um zu vermeiden, dass das Terminal in einem fehlerhaften Zustand bleibt.

Das obige ist der detaillierte Inhalt vonWie kann ich in Python frühere Druckausgaben in derselben Zeile überschreiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn