Я пытаюсь запустить программу командной строки Windows (XP), которая запрашивает «Enter» или «y» для продолжения. В настоящее время я могу ответить на 'y's, запустив программу как:
echo y | name_of_binary
в командном файле.
Я не могу понять, как сказать оболочке отвечать 'Enter' или 'y', когда это требуется. Если он получает запрос типа «Нажмите Enter для продолжения» (которого не так много, но достаточно, чтобы вызвать проблемы) и повторяет «y», он застревает в странном цикле и не принимает никаких входных данных ( он извергает тысячи «нажмите ввод, чтобы продолжить). Если бы я мог повторить сначала Enter, а затем 'y' в последовательности, это могло бы сработать, но ни один из методов, которые я пытался отразить нажатием клавиши Enter, не сработал.
В конечном итоге я вызываю этот пакетный файл через os.system()
в Python. Если есть способ заставить Python запускать двоичный файл (через os.system (name_of_binary)?) И отвечать на запросы, это было бы идеально. Я уже пробовал os.system(echo y | name_of_binary
), который вел себя так же, как командный файл (как и должно быть). Должен ли я использовать другой подход, или я могу решить эту проблему, изменив команду 'echo ...', которую я сейчас использую?