Seite 1 von 1

Subprocess Pipe-Fehler

Verfasst: Donnerstag 27. Januar 2011, 15:53
von josofie
Hallo alle zusammen!

Stelle hier jetzt zum ersten mal eine Frage, falls Fehler oder Anmerkungen da sind, bin ich dafür immer offen!

Ich versuche einen Programmraufruf mit Eingabedaten von der funktionierenden bash in python zu "übersetzen" bzw in ein script einzugliedern. Habe jetzt schon eine weile mit subprocess versucht, aber leider bekomme ich immer wieder Fehler. Auch bei der onlinesuche bin ich nicht auf eine Aufgabenstellung, einen Hinweis oder ähnliches gekommen, der bei mir funktioniert hat.



Hier mal der shell-code(abgewandelt;-)):

Code: Alles auswählen

echo -e "parameter übergabe 0 \nSYM \nend \n" | /home/../pfad/.../programmaufruf parameter1 "parameter2"
--> die Anführungsstriche bei Parameter 2 müssen so sein!

Ausprobiert habe ich beispielsweise:

Code: Alles auswählen

cmd_string1 = [/home/../pfad/.../programmaufruf parameter1 "parameter2"']
cmd_string1b = ['parameter übergabe 0 \nSYM \nend \n']
p1 = Popen(cmd_string1b, stdout=PIPE)
p2 = Popen(cmd_string1, stdin=p1.stdout, stdout=PIPE)
output = p2.communicate()[0]
Fehlermeldung: OSError: [Errno 2] No such file or directory

Anderes Beispiel:

Code: Alles auswählen

p = subprocess.Popen(cmd_string1, shell=True, env=True) 
p.stdin.write(cmd_string1b)
Ebenso hat es auch nicht mit subprocess.call funktioniert (hat die Eingabeparameter komplett ignoriert).


Hoffe ihr könnt mir helfen!
Danke schonmal!!!

Re: Subprocess Pipe-Fehler

Verfasst: Donnerstag 27. Januar 2011, 16:08
von lunar
@josofie: Sorge erst einmal dafür, dass Deine Beispiele syntaktisch korrekt sind.

Re: Subprocess Pipe-Fehler

Verfasst: Donnerstag 27. Januar 2011, 16:16
von josofie
Was meinst du, also zu welchem Beispiel?