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

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

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

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 ...
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 (former) Modvoice
Antworten