Seite 1 von 1

subprocess Live Output

Verfasst: Montag 23. März 2026, 20:03
von s0pply
Hallo zusammen,

bin neu in der Sprache Python und schreibe mir eine kleine Linux Shell Anwendung.
Ich Starte in meinem Script ein Subprocess der Live ausgegeben werden soll, soweit
klappt auch alles, nun möchte ich bei der Ausgabe ein ">>> " davor einsetzen, nun
habe ich aber kein Ansatz Punkt oder im Netz was gefunden, was zu meinen Code
passen würde:

Code: Alles auswählen

    while True:
        out = process.stdout.read(1)
        if out == "" and process.poll() != None:
            break
        if out != "":
            sys.stdout.write(out)
            sys.stdout.flush()
wenn ich in der zweiten Zeile readline verwende, kann ich die Ausgabe anpassen, wie
ich möchte aber leider muss ich (aktuell) read(1) nutzen, da auch eine Eingabe erforderlich
ist und die Frage in der Zeile dazu nicht angezeigt wird.
Komme gerade nicht mehr weiter, könnt Ihr mir da Helfen.

Gruß

Re: subprocess Live Output

Verfasst: Dienstag 24. März 2026, 20:46
von Dennis89

Code: Alles auswählen

sys.stdout.write(f">>>{out}")
https://docs.python.org/3/tutorial/inpu ... -f-strings

Die zweite `if`-Abfrage ist überflüssig, weil wenn die erste wahr ist, dann bricht die Schleife ab und die zweite Abfrage, wird nicht abgefragt. Ist die erste Abfrage nicht wahr, soll geschrieben werden, also brauch man da `out` nicht noch einmal abfragen. `None` prüft man eher mit `is not None` und `out == ""` könnte man mit ` if not out` abfragen.


Grüße
Dennis