Подпроцесс Python - двунаправленное взаимодействие с другим скриптом - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь разработать скрипт на python, который вызывает и выполняет скрипт csh.В данный момент я могу выполнить сценарий csh, но у меня возникают некоторые проблемы с записью в него.

Python должен прочитать стандартный вывод из csh, а затем в некоторые моменты поместить информацию в стандартный ввод csh.Например, в этот момент python запускает скрипт csh, а затем csh запрашивает пароль.Я могу отправить его в csh, но после того, как этот питон выдает ошибку.

with Popen(["script_name", param1, param2], stdout=PIPE, stdin=PIPE, stderr=PIPE, bufsize=1, universal_newlines=True) as p:

for line in p.stdout:
    print(line, end='')
    if "password" in line:

       #p.stdin.write("xpto")
       stdoutMsg = p.communicate("xpto")[0]

Я пытался отправить пароль, используя p.stdin.write, но выполнение никогда не заканчивается.С помощью «общаться» я могу отправить пароль, но когда код пытается получить ответ сценария, он выдает ошибку:

Исключение в обратном вызове Tkinter (...) для строки в p.stdout: ValueError: Операция ввода / вывода для закрытого файла.

Я думаю, что «связь» закрывает ТРУБУ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...