CTRL-C завершается в Python - PullRequest
       2

CTRL-C завершается в Python

0 голосов
/ 28 октября 2011

В настоящее время у меня есть exe, который мне нужен для передачи команд через python. Код работал, когда он был сам по себе. Когда я объединил этот фрагмент с моей последней программой, он не работал.

Как правило, после загрузки первых двух файлов с помощью программы shell_start (загрузка - -f в программе, в которую я передаю команды), python решает пропустить последнюю загрузку внизу с помощью программы shell_forward. Окончательная загрузка 3 файлов с помощью программы shell_forward, даже не работает.

Итак, мой главный вопрос, если вы не уверены, почему: когда программа shell_start заканчивает загрузку двух команд и файлов, оболочка python не позволяет мне что-либо вводить в нее? Он действует как окно командной строки, которое не позволяет вводить в него что-либо после выполнения кода.

Вот почему я чувствую, что ctrl-c необходим для завершения shell_start.exe из предыдущего процесса, поэтому python может позволить мне печатать после его выполнения.

Вот код:

import os, time

name = raw_input("Input your name: ")
apn = raw_input("Input apn name: ")
ecid = raw_input("Input ecid name: ")
kernel = raw_input("Input kernel name: ")

os.system('shell_start.exe -f %s'%name)
time.sleep(1)
os.system('shell_start.exe -f %s'%apn)
time.sleep(1)

os.system('shell_forward.exe --imagefile myfile.img --ecid %(x)s --kernel %(y)s '% {"x" : ecid, "y" : kernel})

1 Ответ

2 голосов
/ 28 октября 2011

Вы можете получить лучшие результаты, заменив вызовы os.system на subprocess.

Модуль подпроцесса позволяет создавать новые процессы, подключаться к их каналам ввода / вывода / ошибок и получать их коды возврата.Этот модуль намеревается заменить несколько других, более старых модулей и функций, таких как:

os.system
os.spawn*
os.popen*
popen2.*
commands.*

См. Также PEP 324 - PEP, предлагающий модуль подпроцесса

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