Seite 1 von 1

Parameter an Datei übergeben und ausführen lassen

Verfasst: Dienstag 8. Juni 2010, 17:37
von Nibbler
Servus,

ich würde gerne Parameter von Python-Datei1 an Python-Datei2 übergeben, die Datei2 ausführen lassen und das Ergebniss an Datei2 zurück geben lassen.
Um die Datei ausführen und das Ergebnis zurück geben lassen habe ich subprocess gefunden, welches auch super klappt aber leider habe ich leider nicht herrausfinden können, wie ich der Datei Parameter übergeben kann.

Um alles ein bisschen zu veranschaulichen.
Ich habe die Datei start.py und die Datei hello.py. Die Datei start.py ruft lediglich mit subprocess die Datei hello.py auf welche mittles print "Hello Klaus" zurück gibt.
Jetzt würde ich aber gerne "Klaus" durch eine Variable ersetzen, und den wert der Variable per subprocess übergeben.

Hat jemand einen Tipp für mich?


Mein jetziger Code sieht so aus:

start.py

Code: Alles auswählen

import subprocess

subprocess.call(["python", "hello.py"])
hello.py

Code: Alles auswählen

print "Hello Klaus"

Re: Parameter an Datei übergeben und ausführen lassen

Verfasst: Dienstag 8. Juni 2010, 17:56
von ms4py
Brauchst du wirklich die Kommunikation über mehrere Prozesse hinweg zwischen den Python-Dateien? Was ist denn dein Ziel? Das Ganze sieht für mich auf den ersten Blick nach einem Designfehler aus. Dir ist schon klar, dass du das Geschilderte auch einfach durch Imports lösen kannst?

Falls die Antwort auf die erste Frage ja ist und du *wirklich* überzeugt bist, dass du Prozesskommunikation benötigst, gibt es `subprocess.Popen.communicate` um in den stdin eines Prozesses zu schreiben und um den stdout/stderr zu lesen. In der `subprocess` Referenz gibt es IMO genügend Beispiele...

Re: Parameter an Datei übergeben und ausführen lassen

Verfasst: Mittwoch 9. Juni 2010, 12:44
von Dav1d
wie wäre es mit Multiprocessing