Piping Popen Stderr und Stdout
Ich möchte Skripte aus einem Verzeichnis (es handelt sich um ausführbare Shell-Skripte) über Python aufrufen.
So weit, ist es gut:
for script in sorted(os.listdir(initdir), reverse=reverse):
if script.endswith('.*~') or script == 'README':
continue
if os.access(script, os.X_OK):
try:
execute = os.path.abspath(script)
sp.Popen((execute, 'stop' if reverse else 'start'),
stdin=None, stderr=sp.PIPE,
stdout=sp.stderr, shell=True).communicate()
except:
raise
Was ich jetzt möchte, ist: Nehmen wir an, ich habe ein Bash-Skript mit einer Startfunktion. von dem ich anrufe
Echo "Etwas"
Jetzt möchte ich das Echo auf sys.stdout und den Exit-Code sehen. Ich glaube, Sie tun dies mit .communicate (), aber meins funktioniert nicht so, wie ich es mir vorgestellt habe.
Was mache ich falsch?
Jede Hilfe wird sehr geschätzt