2014-11-29 3 views
0

У меня есть следующий код на Python и просто хочу отправить команду на терминал, когда он задает конкретный вопрос. Вот то, что я до сих порОтправлять ввод в программу, открытую подпроцессом, используя python?

import subprocess 
import sys 
cmd = "Some application" 
dat = str("") 

p = subprocess.Popen(cmd, shell=True, stderr=subprocess.PIPE, 
        stdin=subprocess.PIPE, stdout=subprocess.PIPE) 
+0

Я благодарю это может помочь вам. Перейти >> [блоки - отправить вход в питон подпроцесса трубопровода] [1] [1]: http://stackoverflow.com/a/1616457/3992791 –

ответ

0
p.communicate(input="this is my input to the subprocess") 

Если вам нужно ловить вывод, сделать это вместо того, чтобы:

output = p.communicate(input="this is my input to the subprocess")[0] 
+0

Хммм, нажать ввести в конце? Я предположил, что это будет p.communicate (input = "это мой вход в подпроцесс/n") [0] – user3577811

+0

Да, вы можете явно включить новую строку во входной параметр, если приложение ожидает его (я не сделал сделайте какие-либо предположения о том, что вы вызывали с помощью подпроцесса) – rchang

+0

Приложение ожидает, что пользователь нажмет клавишу ввода, но он, похоже, не похож на код. Приложение спрашивает: «Вы хотите продолжить? (N/Y)», но не принимаете «Y/n» – user3577811

Смежные вопросы