Это старая версия документа!


Исполнение внешних программ

Запуск с ожиданием завершения

Простейший метод запуска программы метод os.system:

import os

ret = os.system("ls -la")
# Программа ждет завершения команды
# вызванной через os.system

# Код возврата ret

Запуск без ожидания завершения

Метод subprocess.Popen по умолчанию запускает процесс без ожидания завершения:

import subprocess

subprocess.Popen(["long_time_process"])

Запуск с получением вывода

import subprocess

(exitcode, output) = subprocess.getstatusoutput('ls /bin/ls')

Что еще нужно знать о запуске внешних программ

  • Если вы нажимаете Ctrl-C пока внешняя программа запущена через os.system, то этот сигнал уйдет ей, а не Python.
  • Можно взаимодействовать с интерактивными консольными приложениями пока те запущены, но это не просто.
  • Большинство приложений с графическим интерфейсом в качестве первого и единственного аргумента принимают имя файла, который должен быть в них открыт.
  • Выполнить принудительное завершение запущенной внешней программы можно только в случае, если она запущена через Popen.