Nicht blockierendes Lesen eines Unterprozesses.PIPE in python

Ich benutze dassubprocess module, um einen Unterprozess zu starten und eine Verbindung zu seinem Ausgabestream (stdout) herzustellen. Ich möchte in der Lage sein, nicht blockierende Lesevorgänge auf seinem stdout durchzuführen. Gibt es eine Möglichkeit, .readline nicht zu blockieren oder zu überprüfen, ob Daten im Stream vorhanden sind, bevor ich @ aufruf.readline? Ich möchte, dass dies portabel ist oder zumindest unter Windows und Linux funktioniert.

hier ist, wie ich es jetzt mache (es blockiert auf dem.readline wenn keine Daten verfügbar sind):

p = subprocess.Popen('myprogram.exe', stdout = subprocess.PIPE)
output_str = p.stdout.readline()

Antworten auf die Frage(52)

Ihre Antwort auf die Frage