Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия | |||
mpext [2023/03/21 12:00] root |
mpext [2023/03/21 12:26] (текущий) root |
||
---|---|---|---|
Строка 35: | Строка 35: | ||
import os | import os | ||
- | ret = os.system(" | + | ret = os.system(" |
- | # Программа ждет завершения | + | # ret - код завершения |
- | # вызванной через os.system | + | # 0 - успешно, иначе ошибка |
- | + | ||
- | # Код возврата ret | + | |
</ | </ | ||
+ | |||
+ | Вызов блокирующий - программа ждет завершения команды вызванной через '' | ||
</ | </ | ||
- | ==== Запуск | + | ==== Запуск |
- | + | ||
- | Метод '' | + | |
<sxh python> | <sxh python> | ||
import subprocess | import subprocess | ||
- | subprocess.Popen(["long_time_process"]) | + | output = subprocess.check_output('ping 127.0.0.1 -n 6', encoding="cp866") |
+ | |||
+ | print(output) | ||
</ | </ | ||
+ | |||
+ | Вызов блокирующий - программа ждет завершения команды вызванной через '' | ||
</ | </ | ||
- | ==== Запуск | + | ==== Запуск |
+ | |||
+ | Метод '' | ||
<sxh python> | <sxh python> | ||
import subprocess | import subprocess | ||
- | (exitcode, output) | + | q = subprocess.Popen("ping 127.0.0.1 -n 6", shell=True) |
+ | while q.poll() is None: | ||
+ | print(' | ||
+ | sleep(1) | ||
+ | |||
+ | print(" | ||
</ | </ | ||
Строка 69: | Строка 78: | ||
* Если вы нажимаете Ctrl-C пока внешняя программа запущена через os.system, то этот сигнал уйдет ей, а не Python. | * Если вы нажимаете Ctrl-C пока внешняя программа запущена через os.system, то этот сигнал уйдет ей, а не Python. | ||
- | * Можно взаимодействовать с интерактивными консольными приложениями пока те запущены, но это не просто. | + | * Можно взаимодействовать с интерактивными консольными приложениями пока те запущены |
* Большинство приложений с графическим интерфейсом в качестве первого и единственного аргумента принимают имя файла, который должен быть в них открыт. | * Большинство приложений с графическим интерфейсом в качестве первого и единственного аргумента принимают имя файла, который должен быть в них открыт. | ||
- | * Выполнить принудительное завершение запущенной внешней программы можно только в случае, | ||
</ | </ | ||