Seite 1 von 1

Aus Python heraus zwei neue Programme gleichzeitig starten

Verfasst: Dienstag 4. Juli 2006, 12:20
von Benja
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

Verfasst: Dienstag 4. Juli 2006, 12:54
von BlackJack
Im einfachsten Fall benutzt Du einfach `os.system()` um eine externe Shell mit der übergebenen Zeichenkette als Kommando zu starten.

Verfasst: Dienstag 4. Juli 2006, 12:58
von Benja
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 ...

Verfasst: Dienstag 4. Juli 2006, 18:01
von Leonidas
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.