ich will versuchen mit subprocess.Popen ein paar Shellscripte zu steuern.
Wenn man die Scripte startet, stellen die einem Fragen, bei denen man Parameter eingeben muss. Die ganze Zeit wurde das mit Shellscripten gelöst, die etwa so aussahen:
Code: Alles auswählen
script.sh << EOF
parameter1
parameter2
EOF
Was ideal wäre, wäre auch die "Frage" des Scriptes irgendwie zu erfahren, also nicht nur Parameter zu übergeben. Ziel wäre es, nachdem das Python Prog fertig ist, eine Zusammenfassung auszugeben mit den Fragen und den Parametern die ich übergeben habe...
Was ich bis jetzt versucht habe sieht so aus:
Code: Alles auswählen
>>> test = subprocess.Popen('/apps/prod/imagic5/imagic_amd/stand/em2em.e', stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
>>> test.communicate()
(' \nPlease specify option : ', 'forrtl: severe (24): end-of-file during read, unit 5, file stdin\n')
>>> test.communicate()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/lib/python2.4/subprocess.py", line 1028, in communicate
self.stdin.flush()
ValueError: I/O operation on closed file
>>> test = subprocess.Popen('/apps/prod/imagic5/imagic_amd/stand/em2em.e', stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
>>> test.stdout
<open file '<fdopen>', mode 'rb' at 0x2b61c925d648>
>>> test.stderr
<open file '<fdopen>', mode 'rb' at 0x2b61c925d6c0>
>>> test.stdin
<open file '<fdopen>', mode 'wb' at 0x2b61c925d5d0>
>>> test.stderr.readlines()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
KeyboardInterrupt
Kann mir da jemand helfen?