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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage