У меня есть приложение, которым я пытаюсь управлять через Python и модуль подпроцесса. По сути, я запускаю приложение с помощью Popen (который открывает командную строку, в которой выполняется программа), а затем в какой-то момент времени позже в процессе выполнения мне нужно отправить строку (команду) на STDIN этой программы , Это работает нормально, за исключением того факта, что команда не будет обработана, пока я вручную не введу кнопку в командном окне приложения, запущенного Python. Вот часть моего кода:
cmd = 'quit\n'
app.communicate(cmd.encode('utf-8'))
Есть идеи?
РЕДАКТИРОВАТЬ # 1
Да, нажатие кнопки означает нажатие клавиши на клавиатуре, извините за путаницу. Я прикрепил больше моего кода ниже
app = Popen(['runProg.exe', '-m', '20'], stdin=PIPE, universal_newlines=True)
while not os.path.exists('C:/temp/quit-app.tmp'): time.sleep(1)
app.communicate('quit')
os.remove('C:/temp/quit-app.tmp')
Итак, что должно произойти, программа должна работать до тех пор, пока не будет создан файл quit-app.tmp; после того, как он создан, «quit» должен быть отправлен в приложение, которое является командой для его корректного завершения работы. Если бы человек запускал эту программу, он сделал бы это, просто набрав «quit» в командном окне. Спасибо!