Nehmen wir an, es gibt ein Programm namens 'ABC', das 4 ganze Zahlen von stdin liest und etwas damit macht.subprocess.Popen - stdin erneut umleiten
Vor kurzem leanred ich, dass wir Pipeline verwenden können, die Eingänge zu ABC zu füttern, wie folgt vor:
# send.py
import subprocess
p = subprocess.Popen(['ABC'], stdin = subprocess.PIPE)
print >>p.stdin, '1 2 3 4'
Meine Frage ist: Können wir stdin wieder nach dem Aufruf von subprocess.Popen
umleiten ?? Beispiel:
# send.py
import subprocess
p = subprocess.Popen(['ABC'], stdin = subprocess.PIPE)
print >>p.stdin, '1 2 3'
(Redirect p.stdin to terminal's stdin)
, so dass wir die vierte Ganzzahl in ABC eingeben können, indem Sie das Terminal eingeben.
Sie wollen 'send.py' von stdin lesen und dann in' ABC's stdin schreiben? Ja, absolut kannst du das tun. Und es heißt in diesem Fall nicht "Umleitung" - jedes Programm hat seine eigene Standardeingabe. Verwenden Sie 'input()' oder 'sys.stdin.read()'. –