Vorherige Druckausgabe überschreiben: Fortschrittsanzeige des FTP-Downloaders verbessern
Beim Erstellen eines FTP-Downloaders ist es wünschenswert, eine Fortschrittsanzeige zu haben Das wird ständig aktualisiert und überschreibt die vorherige Ausgabe in derselben Zeile. Stellen Sie sich ein Szenario vor, in dem Sie eine Datei herunterladen und deren Fortschritt in Echtzeit überwachen möchten, ohne dass mehrere Druckzeilen überladen werden.
Der ursprüngliche Code für die Verarbeitung der Fortschrittsanzeige basierte auf der folgenden Struktur:
print(os.path.getsize(file_name) / 1024, 'KB / ', size, 'KB downloaded!')
Dies würde jedes Mal, wenn der Fortschritt aktualisiert wird, eine neue Zeile ausgeben. Um den gewünschten Effekt des Überschreibens der vorherigen Zeile zu erzielen, kann das Schlüsselwort end verwendet werden. Hier ist der überarbeitete Code:
print(os.path.getsize(file_name) / 1024, 'KB / ', size, 'KB downloaded!', end='\r')
Der entscheidende Unterschied besteht hier in der Hinzufügung von end='r' am Ende der print-Anweisung. Standardmäßig fügt die Funktion print() am Ende ihrer Ausgabe ein Zeilenumbruchzeichen (n) hinzu. Wenn Sie jedoch end='r' verwenden, wird diese neue Zeile stattdessen durch einen Wagenrücklauf (r) ersetzt.
Wenn ein Wagenrücklauf verwendet wird, kehrt der Cursor zum Anfang der aktuellen Zeile zurück, ohne eine neue zu erstellen. Dadurch können nachfolgende Fortschrittsaktualisierungen die vorherige Zeile überschreiben und so effektiv eine dynamische Fortschrittsanzeige erstellen.
Beachten Sie, dass dieser Ansatz mit Python 3.x kompatibel ist. Für Python 2.6 müssen Sie möglicherweise die Zeile aus __future__ import print_function am Anfang der Datei einfügen, um die erweiterte print()-Funktion mit Schlüsselwortargumenten zu verwenden.
Durch die Einbindung dieser einfachen Änderung können Sie eine optimierte erstellen Fortschrittsanzeige, die Benutzer auf dem Laufenden hält, ohne sie mit mehreren Ausgabezeilen zu überfordern.
Das obige ist der detaillierte Inhalt vonWie überschreibe ich die vorherige Druckausgabe für eine dynamische FTP-Downloader-Fortschrittsanzeige?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!