Text ohne Zeilenumbruch ausgeben

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
dagobert666
User
Beiträge: 2
Registriert: Mittwoch 8. Dezember 2021, 12:16

Hallo zusammen,

ich habe eine Frage zur Textausgabe ohne "neue Zeile".
Der Übersichtlichkeit wegen würde ich gerne zuerst einen Text ausgeben, dann weiteren Code abarbeiten und dann in der gleichen Zeile den Abschluss anzeigen.
So z.B.:
Vorgang 1 gestartet........ Erfolgreich abgeschlossen.

Hier mein letzte Versuch:

Code: Alles auswählen

       print("Vorgang 1 gestartet....    ", end = "")
       time.sleep(6)                                                # Platzhalter für anderen Code 
       print ("Erfolgreich abgeschlossen")
Leider wird der gesamte Text erst mit dem letzten print ausgegeben und nicht erst der erste Text, dann der weitere Code abgearbeitet und dann der letzte Text. (In der gleichen Zeile)
Kann man das irgendwie anders lösen?

Vielen Dank
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das liegt an deinem Terminal. Aus Gruenden der Effizienz schreibt das nur ganze Zeilen. Du kannst das wahrscheinlich mit sys.stdout.flush() beeinflussen, oder gleich ein spezialisiertes Paket fuer Text-UIs wie ncurses oder urwid benutzen.
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

Dafür gibt es das flush-Argument:

Code: Alles auswählen

print("Vorgang 1 gestartet....    ", end = "", flush=True)
dagobert666
User
Beiträge: 2
Registriert: Mittwoch 8. Dezember 2021, 12:16

Sirius3 hat geschrieben: Mittwoch 8. Dezember 2021, 14:28 Dafür gibt es das flush-Argument:

Code: Alles auswählen

print("Vorgang 1 gestartet....    ", end = "", flush=True)
Darf man sich bedanken?
Danke! :)
Antworten