os.execv ()

os.execv ( path, args )

Функции семейства os.exec* () запускают новую программу, заменяя ей текущий процесс; они не возвращают управление обратно. В Unix новый исполняемый файл загружается в текущий процесс и будет иметь тот же идентификатор процесса, что и вызывающий. Об ошибках будут сообщаться как об исключениях OSError.

Текущий процесс заменяется немедленно. Открытые файловые объекты и дескрипторы не сбрасываются, поэтому, если в этих открытых файлах могут быть буферизованные данные, вы должны очистить их с помощью sys.stdout.flush () или os.fsync () перед вызовом функции os.exec*().

Варианты 'l' и 'v' функций exec*() отличаются тем, как передаются аргументы командной строки. С вариантами 'l', пожалуй, легче всего работать, если количество параметров фиксировано при написании кода; отдельные параметры просто становятся дополнительными параметрами для функций execl*(). Варианты 'v' хороши, когда количество параметров является переменным, а аргументы передаются в виде списка или кортежа в качестве параметра args. В любом случае аргументы дочернего процесса должны начинаться с имени выполняемой команды, но это не принудительно.

Вызывает событие аудита os.exec с аргументами path, args, env.

Доступность: Unix, Windows.

Новое в версии 3.3: добавлена поддержка указания пути в качестве дескриптора открытого файла для execve ().

Изменено в версии 3.6: Принимает объект, подобный пути (path-like object ).

Last updated