2015-05-22 3 views
0

Я вызываю подпроцесс (ожидают, что скрипт запускает некоторую команду), и ему нужно подождать, пока он не будет завершен, чтобы запустить другую функцию, но с этим я думаю, что он только ждет, пока команда оболочки не завершится, а не сценарий ожидания. Можно ли дождаться завершения всего процесса?Подзапрос ожидания ожидаемого сценария заканчивается

p111 = subprocess.Popen('gnome-terminal -e "perl /tmp/expect',shell=True) 
    os.waitpid(p111.pid,0) 
    smo_final() 
+1

Зачем вам нужен гном-терминал? – ElmoVanKielmo

+0

, чтобы начать ожидать сценария в новом окне, чтобы показать пользователю весь процесс, что делается сценарием expect. Это всего лишь часть программы GUI. – user3319356

+0

'shell = True' не рекомендуется –

ответ

0

Использование pexpect, питон ожидать implementation

import pexpect 
... 
child = pexpect.spawn(cmd) # the command you want to run 
child.expect(str_expect) # the string you expect 
child.sendline(str_response) # the string with which you'd like to respond 
child.wait() # wait for the child to exit 
... 
# the rest of your code here 
+1

ok, я улучшил свой ответ – e271p314

+0

да, это правильно, но в этом случае я должен вызвать сценарий ожидания по другим причинам ... – user3319356

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