Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ext:call [2021/03/18 12:40]
root
— (текущий)
Строка 1: Строка 1:
-<div slide> 
-====== Исполнение внешних программ ====== 
- 
-===== Запуск с ожиданием завершения ===== 
- 
-Простейший метод запуска программы метод ''os.system'': 
- 
-<sxh python> 
-import os 
- 
-ret = os.system("ls -la") 
-# Программа ждет завершения команды 
-# вызванной через os.system 
- 
-# Код возврата ret 
-</sxh> 
- 
-</div><div slide> 
- 
-===== Запуск без ожидания завершения ===== 
- 
-Метод ''subprocess.Popen'' по умолчанию запускает процесс без ожидания завершения: 
- 
-<sxh python> 
-import subprocess 
- 
-subprocess.Popen(["long_time_process"]) 
-</sxh> 
- 
-</div><div slide> 
- 
-===== Запуск с получением вывода ===== 
- 
-<sxh python> 
-import subprocess 
- 
-(exitcode, output) = subprocess.getstatusoutput('ls /bin/ls') 
- 
-</sxh> 
- 
-</div><div slide> 
-===== Что еще нужно знать о запуске внешних программ ===== 
- 
-  * Если вы нажимаете Ctrl-C пока внешняя программа запущена через os.system, то этот сигнал уйдет ей, а не Python. 
-  * Можно взаимодействовать с интерактивными консольными приложениями пока те запущены, но это не просто. 
-  * Большинство приложений с графическим интерфейсом в качестве первого и единственного аргумента принимают имя файла, который должен быть в них открыт. 
-  * Выполнить принудительное завершение запущенной внешней программы можно только в случае, если она запущена через ''Popen''. 
- 
-</div>