Различия
Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
mpext [2023/03/21 11:55] root создано |
mpext [2023/03/21 12:26] (текущий) root |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | <div slide> | ||
+ | |||
====== Многопоточное программирование и вызов внешних программ ====== | ====== Многопоточное программирование и вызов внешних программ ====== | ||
Строка 22: | Строка 24: | ||
print(results) | print(results) | ||
</ | </ | ||
+ | |||
+ | </ | ||
+ | ===== Исполнение внешних программ ===== | ||
+ | |||
+ | ==== Запуск с ожиданием завершения ==== | ||
+ | |||
+ | Простейший метод запуска программы метод '' | ||
+ | |||
+ | <sxh python> | ||
+ | import os | ||
+ | |||
+ | ret = os.system(" | ||
+ | # ret - код завершения программы | ||
+ | # 0 - успешно, | ||
+ | </ | ||
+ | |||
+ | Вызов блокирующий - программа ждет завершения команды вызванной через '' | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Запуск с получением вывода ==== | ||
+ | |||
+ | <sxh python> | ||
+ | import subprocess | ||
+ | |||
+ | output = subprocess.check_output(' | ||
+ | |||
+ | print(output) | ||
+ | </ | ||
+ | |||
+ | Вызов блокирующий - программа ждет завершения команды вызванной через '' | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Запуск без ожидания завершения ==== | ||
+ | |||
+ | Метод '' | ||
+ | |||
+ | <sxh python> | ||
+ | import subprocess | ||
+ | |||
+ | q = subprocess.Popen(" | ||
+ | |||
+ | while q.poll() is None: | ||
+ | print(' | ||
+ | sleep(1) | ||
+ | |||
+ | print(" | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | ==== Что еще нужно знать о запуске внешних программ ==== | ||
+ | |||
+ | * Если вы нажимаете Ctrl-C пока внешняя программа запущена через os.system, то этот сигнал уйдет ей, а не Python. | ||
+ | * Можно взаимодействовать с интерактивными консольными приложениями пока те запущены через '' | ||
+ | * Большинство приложений с графическим интерфейсом в качестве первого и единственного аргумента принимают имя файла, который должен быть в них открыт. | ||
+ | |||
+ | </ | ||
+ |