В [этой теме] [1] есть похожий вопрос к моему.
Я хочу отправить команду своему подпроцессу, интерпретировать ответ, а затем отправить другую команду. Казалось бы, стыдно начинать новый подпроцесс, чтобы выполнить это, особенно если subprocess2 должен выполнять многие из тех же задач, что и subprocess1 (например, ssh, open mysql).
Я попробовал следующее:
subprocess1.stdin.write([my commands])
subprocess1.stdin.flush()
subprocess1.stout.read()
Но без определенного параметра для байтов до read()
программа застревает при выполнении этой инструкции, и я не могу предоставить аргумент для read()
, потому что я не могу угадать, сколько байтов доступно в потоке.
Я использую WinXP, Py2.7.1
EDIT
Благодарю @regularfry за то, что он дал мне лучшее решение для моих реальных намерений (прочитайте комментарии в его ответе, так как они касаются достижения моей цели через туннель SSH). (За его / ее ответ проголосовали.) Однако в интересах любого зрителя, который в дальнейшем приходит за ответом на заглавный вопрос, я принял ответ @Mike Penningtion.