Предположим, что есть программа с именем «ABC», которая считывает 4 целых числа из stdin и делает с ними что-то.subprocess.Popen - перенаправить stdin снова
Недавно я leanred, что мы можем использовать трубопровод, чтобы накормить входы в ABC, как следующее:
# send.py
import subprocess
p = subprocess.Popen(['ABC'], stdin = subprocess.PIPE)
print >>p.stdin, '1 2 3 4'
Мой вопрос: можем ли мы перенаправить стандартный ввод снова после вызова subprocess.Popen
?? Например,
# send.py
import subprocess
p = subprocess.Popen(['ABC'], stdin = subprocess.PIPE)
print >>p.stdin, '1 2 3'
(Redirect p.stdin to terminal's stdin)
, так что мы можем ввести четвертое целое число в ABC, напечатав на терминале.
Вы хотите, чтобы 'send.py' читал из stdin, а затем записывался в stdin' ABC'? Да, вы можете это сделать абсолютно. И это не называется «перенаправление» в этом случае - каждая программа имеет свой собственный stdin. Используйте 'input()' или 'sys.stdin.read()'. –