Seite 1 von 1

Python Unterprozess mit gleichen Argumenten aufrufen

Verfasst: Montag 3. Dezember 2012, 02:04
von Juggl3r
Hallo,

ich möchte ein Programm von mir starten, z.b:
python Test.py ARG1 ARG2

und dann soll das Python programm ein anderes Programm (z.B.: echo) ausführen und die gleichen Argumente übergeben.

Außerdem muss ich den Rückgabewert zurückbekommen und Benutzer sollten normal mit dem Aufgerufenen Programm interagieren können.
Den C-Code dafür hätte ich, der sieht so aus:

Code: Alles auswählen

pid_t pID = fork();
if(pID == 0) {
  execve(myFile, argv, envp);
}
else {
  int ret;
  wait(&ret);
  return WEXITSTATUS(ret);
}


wobei Main so aussieht:

int main(int argc, char *argv[], char *envp[]);
Bin mit Python allerdings nicht so fit, kann mir jemand bitte helfen?
Die Umgebungsvariablen sind nciht so wichtig, aber die Argumente + Rückgabewert wären mir sehr wichtig.

lg

Re: Python Unterprozess mit gleichen Argumenten aufrufen

Verfasst: Montag 3. Dezember 2012, 07:35
von sparrow
Externe Programme startet man in Python mit subprocess.

Re: Python Unterprozess mit gleichen Argumenten aufrufen

Verfasst: Montag 3. Dezember 2012, 07:47
von snafu
Du brauchst im Wesentlichen:

Code: Alles auswählen

import subprocess
exitcode = subprocess.call(['echo'] + args)
Wenn du Kommandozeilenparameter übernehmen möchtest:

Code: Alles auswählen

import sys
args = sys.argv[1:]
Damit bewirkst du, dass eine neue Liste an `args` gebunden wird, welche alle Kommandozeilenargumente, außer dem ersten beinhaltet. Das erste Argument ist bekanntlich der Programmname - und den möchtest du vermutlich nicht ausgeben.