431 Stimmen

Ein Python-Skript von einem anderen Python-Skript aus ausführen, indem Argumente übergeben werden

Ich möchte ein Python-Skript von einem anderen Python-Skript aus ausführen. Ich möchte Variablen so übergeben, wie ich es über die Kommandozeile tun würde.

Ich würde zum Beispiel mein erstes Skript ausführen, das eine Liste von Werten (0,1,2,3) durchläuft und diese an das zweite Skript weitergibt script2.py 0 dann script2.py 1 , usw.

Ich fand Stack Overflow-Frage 1186789 was eine ähnliche Frage ist, aber die Antwort von ars ruft eine Funktion auf, während ich das ganze Skript ausführen möchte, nicht nur eine Funktion, und die Antwort von balpha ruft das Skript auf, aber ohne Argumente. Ich habe dies testweise in etwas wie das Folgende geändert:

execfile("script2.py 1")

Aber die Variablen werden nicht richtig akzeptiert. Wenn ich den Ausdruck sys.argv in script2.py ist es der ursprüngliche Befehlsaufruf des ersten Skripts "[' C:\script1.py '].

Ich möchte das ursprüngliche Skript (d. h. script2.py in meinem Beispiel) nicht wirklich ändern, da ich es nicht besitze.

Ich denke, es muss einen Weg geben, dies zu tun; ich bin nur verwirrt, wie Sie es tun.

41voto

Nikos Punkte 367
import subprocess
subprocess.call(" python script2.py 1", shell=True)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X