Aus Python heraus zwei neue Programme gleichzeitig starten

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.
Benja
User
Beiträge: 5
Registriert: Dienstag 4. Juli 2006, 12:00

Aus Python heraus zwei neue Programme gleichzeitig starten

Beitragvon Benja » Dienstag 4. Juli 2006, 12:20

Hallo

Bin gerade dabei, mich mit Python neu zu befassen. Verzeiht mir also bitte meine Unkenntnis.

Ich möchte aus einem Python-Skript heraus zwei Programme starten. Diese Programme sollen per pipe aneinander gekoppelt sein. Ich arbeite unter Linux.
Die beiden Programme sollen Parameter übergebene bekommen, die im Python-Skript berechnet werden.

Das ganze Skript hat diesen Aufbau:

Code: Alles auswählen

tue
    berechne parameter (aus denen der Liste)
    rufe externe programme auf
    warte, bis externe programme terminieren
solange werte in liste vorhanden sind


Der Aufruf der externen Programme hat folgende Gestalt:

Code: Alles auswählen

./pfad/prog1 param1 param2 param3 | ./pfad/prog2 param4 param5


Könnt ihr mir sagen,
1. ob das prinzipiell überhaupt geht (ich vermute, es geht)
2. wie ich das ungefähr anstelle ? Also, den Aufruf zum Start der 2 Programme und das Warten auf deren Terminierung ?

Ich danke euch !

Gruß,
Benja
BlackJack

Beitragvon BlackJack » Dienstag 4. Juli 2006, 12:54

Im einfachsten Fall benutzt Du einfach `os.system()` um eine externe Shell mit der übergebenen Zeichenkette als Kommando zu starten.
Benja
User
Beiträge: 5
Registriert: Dienstag 4. Juli 2006, 12:00

Beitragvon Benja » Dienstag 4. Juli 2006, 12:58

ok. klingt gut ;)
sicherheitshalber folgende nachfrage:

solange dann diese shell geöffnet ist, ist das python-skript "angehalten" ?
die ausführung der externen programme kann einige minuten bis stunden dauern ...
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 4. Juli 2006, 18:01

Am besten du siehst dir mal [wiki=Neue_Features#Subprocess]subprocess[/wiki] an, dort kannst du dann auswählen ob es blokieren soll oder nicht und hast eine ganze Menge anderer Optionen.
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: /me, DB7WN, NewToPython, Yahoo [Bot]