CTRL-C закінчується в python

В даний час у мене є 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

1 Відповіді

Ви можете мати кращі результати, замінивши виклики os.system за допомогою підпроцес .

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

  os.system
о.спаун *
os.popen *
popen2. *
команди. *
 
     

Див. також PEP 324 - PEP запропонувавши модуль підпроцесу

2
додано
що працював. Я до сих пір цікаво, чому це відбувається з os.system, хоча .. хмм ... можливо, глюк на пітоні? Я спробував використати підпроцесу раніше, але я думаю, читання на різних кодах підпроцесу допомогло: P спасибі за інформацію!
додано Автор user715578, джерело
EDIT: просто поєднали цей модифікований фрагмент коду з вашою пропозицією підпроцесу. досі не запускає наступну програму ..
додано Автор user715578, джерело
ІТ КПІ - Python
ІТ КПІ - Python
625 учасників

Канал обговорень про всякі штуки зі світу пайтону. Прохання: 0. мати повагу одне до одного; 1. не матюкатися в сторону людей; 2. не захламляти тред повідомленнями по одному слову;