все Python 3osфункция
os.execlp
os — запуск программ (exec)
Как execl, но программа ищется в каталогах PATH.
Синтаксис
os.execlp(...)
Ищет программу по каталогам PATH, как оболочка: execlp('python3', 'python3', '-V'). Если программы нет, поднимается FileNotFoundError. Поиск идёт по PATH текущего окружения, и если его подменили, найдётся не та программа — для чувствительного кода надёжнее полный путь, например из shutil.which.
Примеры
import os
os.execlp('echo', 'echo', 'привет') # → ? только Unix: программа найдена в каталогах PATH, процесс замещён, печатается «привет»
os.execl('echo', 'echo', 'привет') # → FileNotFoundError: версия без «p» по PATH не ищет, ей нужен полный путь /bin/echo
os.execlp('такой-программы-нет', 'такой-программы-нет') # → FileNotFoundError: ни в одном каталоге PATH исполняемый файл не найден
pid = os.fork() # → ? только Unix: 0 в дочернем процессе, pid ребёнка — в родительском
if pid == 0: os.execlp('ls', 'ls', '-l') # → ? только Unix: ребёнок превращается в `ls -l`, родитель продолжает работу и ждёт его через os.wait()
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности