Ich versuche Code von this Antwort ausführen. Der Einfachheit halber ist der Code unten aufgeführt.Warum funktioniert dieser Code für jemand anderen, aber nicht für mich?
main.py
from subprocess import Popen, PIPE
p = Popen(['py', 'client.py'], stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=True)
r = True
while r:
r = p.stdout.readline()
print r
client.py
def fn():
for a in (0, 1, 2):
print a
fn()
OUTP:
b'0\r\n'
b'1\r\n'
b'2\r\n'
b''
Die Person, die die Antwort beigetragen sagte, es für sie arbeitet. Ich kann jedoch keine Ausgabe erzeugen. Ich habe dies mit Python 2.7 auf Mac, Linux und Windows versucht.
Wenn dies für Sie funktioniert, erläutern Sie bitte, warum es nicht für mich funktioniert. Alles, was ich mache, ist python main.py
in dem Verzeichnis, wo beide Dateien sind.
EDIT: "OUT:" ist, was ich bekommen soll. Ich bekomme jedoch nichts.
Dieser Code entspricht nicht die erwartete Ausgabe. Wenn Sie sich den Bearbeitungsverlauf der Antwort ansehen, von der Sie die Antwort erhalten haben, scheint der Code wiederholt geändert worden zu sein, ohne ihn jedes Mal getestet zu haben. – user2357112
Ich erhalte keine Ausgabe, wenn ich den Code ausführe. Oben ist die neueste Version der "bereitgestellten Lösung". Der OUT: ist was er bekommt/was ich bekommen soll. – BadProgrammer
Am Ende, print r.returncode - Wurde der Subprozess erfolgreich abgeschlossen? – James