Python Glossary English

все Python 3osфункция

os.execv

os — запуск программ (exec)

Заменяет текущий процесс новой программой (путь + список аргументов); при успехе не возвращается.

Синтаксис

os.execv(...)

Первым элементом списка должно идти имя программы: execv('/bin/ls', ['ls', '-l']). Если передать ['-l'], программа решит, что её зовут '-l', и останется без аргументов; пустой список поднимает ValueError. Текущий процесс заменяется целиком — код после вызова не выполнится, а несброшенные буферы пропадут, поэтому перед вызовом делайте sys.stdout.flush().

Примеры

import os
args = ['ls', '-l', '/tmp']   # args[0] — имя программы, каким её увидит сама программа
print(args[0], len(args))   # → ls 3
print(os.execv('ls', args))   # → FileNotFoundError: execv не ищет в PATH, нужен полный путь
import os
# os.execv('/bin/ls', args)   # только Unix: текущий процесс заменяется на ls, строки ниже уже не выполнятся

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности