all Python 3osfunction
os.execlp
os — running programs (exec)
Like execl, but the program is looked up in PATH.
Syntax
os.execlp(...)
It searches PATH directories like a shell: execlp('python3', 'python3', '-V'). A missing program raises FileNotFoundError. The lookup uses the current environment's PATH, and a tampered PATH finds the wrong program — sensitive code is safer with a full path, for instance from shutil.which.
Examples
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()
See also
Common errors
Open in the full glossarydocs.python.orgReport an inaccuracy