2014-09-15 3 views
2

Я только начал изучать Python сегодня и не смог найти хороший пример онлайн, чтобы помочь мне правильно понять os.execve(path, args, env).Как использовать os.execve в Python

Как использовать этот метод (os.execve) для выполнения следующей задачи в Python 3.4?
Выполнение внешней команды (эта команда не является какой-либо командой windows, такой как mkdir, cd ... Это настраиваемая команда), ее местоположение равно C:\blah и требуется 5 аргументов командной строки.

Проще простого примера использования этой команды было бы высоко оценено.

+2

Функция os.exec * остановит вашу программу от выполнения. Это действительно то, что вы хотите? –

+0

отлично, как exexute внешней команды, не останавливая мою программу? –

+0

«Я только начал изучать Python сегодня и не смог найти хороший пример онлайн, чтобы помочь мне правильно понять« os.execve (path, args, env) ». У Python есть превосходная онлайн-документация, если вы можете ее найти, вы делаете что-то неправильно ... [Ссылка на документацию os.execve] (https://docs.python.org/2/library/os.html#os. execve) – KurzedMetal

ответ

3

Вы хотите использовать подпроцесс:

import subprocess 
subprocess.check_call(["C:\my program.exe", "all", "my", "args"]) 

os.exec * заменяет текущую программу с другой. У него есть использование, но обычно это не то, что вы хотите.

Обратите внимание, что есть несколько вариантов здесь:

  1. call просто вызывает программу.
  2. check_call вызывает программу и выдает исключение, если он не работает.
  3. check_output вызывает программу, выдает исключение, если он терпит неудачу, и возвращает выход программы.

Более продвинутые варианты использования могут обрабатываться subprocess.Popen объектами.

+0

как это работает для команды типа «login -u john -ac regular -p password», где login - login.exe, команда –

+0

'subprocess.call ([" login "," -u "," john "," -ac "," regular "," -p "," password "]). (Возможно, вам нужно пройти полный путь для входа в систему) –

+0

это будет работать с окнами так же, как правильно? –

Смежные вопросы