Ich erstellte zwei Skripte, wenn eines der Skripte das andere Skript ausführt und versucht, es in Echtzeit zu erhalten.Wie aus dem Stand des Kindes lesen, während es noch lebt
Das Skript, das die Ausgabe zu erhalten versucht:
import subprocess
p = subprocess.Popen("python .\\print.py", stdout=subprocess.PIPE)
print p.stdout.readline()
Das zweite Skript:
import time
print "1se12d12d32d3223"
print "\r"
time.sleep(10000)
Das Problem ist, dass ich die Ausgabe nur dann, wenn der Kindprozess stirbt, obwohl die Linie bekommen wurde schon auf stdout geschrieben.
ich versuchte, die folgenden:
- als Argument Verwendung os.pipe POPEN und dann von der "Lese" pipe Lesen
- Shell = True als Argument Popen
- Verwendung BufSize = 1 Popen als Argument
- Verwendung stdout.read(), stdout.readlines(), stdout.read (1), etc ...
- ich nicht die fcntl Modul verwenden kann, um das Rohr "nicht blockiert" zu machen, weil ich Windows verwende
Alles, was ich versuche zu tun, ist die erste Zeile von stdout des Kind-Prozesses zu lesen, während der Prozess noch am Leben ist. Wie kann ich das in Python machen?