Ich benutze die Unterprozessmodul um einen Unterprozess zu starten und eine Verbindung zu dessen Ausgabestrom (Standardausgabe) herzustellen. Ich möchte in der Lage sein, nicht-blockierende Lesevorgänge auf der Standardausgabe auszuführen. Gibt es eine Möglichkeit, .readline nicht-blockierend zu machen oder zu prüfen, ob Daten auf dem Stream sind, bevor ich die .readline
? Ich möchte, dass es portabel ist oder zumindest unter Windows und Linux funktioniert.
So mache ich es im Moment (es blockiert auf der .readline
wenn keine Daten verfügbar sind):
p = subprocess.Popen('myprogram.exe', stdout = subprocess.PIPE)
output_str = p.stdout.readline()