Parameter an Datei übergeben und ausführen lassen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Nibbler
User
Beiträge: 1
Registriert: Dienstag 8. Juni 2010, 17:10

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"
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

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...
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

wie wäre es mit Multiprocessing
the more they change the more they stay the same
Antworten