Subprocess Pipe-Fehler

Python in C/C++ embedden, C-Module, ctypes, Cython, SWIG, SIP etc sind hier richtig.
Antworten
josofie
User
Beiträge: 2
Registriert: Montag 10. Januar 2011, 12:36

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!!!
Zuletzt geändert von josofie am Donnerstag 27. Januar 2011, 21:39, insgesamt 1-mal geändert.
lunar

@josofie: Sorge erst einmal dafür, dass Deine Beispiele syntaktisch korrekt sind.
josofie
User
Beiträge: 2
Registriert: Montag 10. Januar 2011, 12:36

Was meinst du, also zu welchem Beispiel?
Antworten