2

Я пытаюсь запустить программу на C из кода Python.

cmd = 'gnome-terminal --command=./myprog'
subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)

Код выполняется, и терминал закрывается.

Я хочу оставить терминал открытым после завершения выполнения без необходимости добавлять какой-либо дополнительный код в C-файл, например, запрашивать у пользователя какой-либо ввод.

Есть ли обходной путь для этого?

3 ответа3

4

Чтобы терминал оставался открытым до нажатия клавиши:

gnome-terminal -- bash -c "ls && read"

Чтобы терминал оставался открытым до exit:

gnome-terminal -- bash -c "ls && bash"

Замените ls командой, которую вы хотите выполнить (ваш скомпилированный исполняемый файл).

Заметка

Если -- не работает, попробуйте вместо этого старый (устаревший) подход -x :

gnome-terminal -x bash [...]
0

Поскольку вы начинаете это с Python, попробуйте это:

import time
#Your Code here
time.sleep(5) # delay for 5 seconds 
0

Я не могу быть уверен на 100%, так как я нахожусь на Mac без установки Gnome, но это должно работать: добавить ; read вашу команду для выполнения, поэтому после выполнения команды вам нужно нажать Enter перед закрытием окна:

cmd = 'gnome-terminal --command="./myprog ; read"'
subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)

Я проверил это с помощью xterm вместо gnome-терминал, там он работает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .