Während ich die Python-Wrapper-Bibliothek für Android Debug Bridge (ADB) entwickle, verwende ich Subprozess, um adb-Befehle in der Shell auszuführen. Hier ist das vereinfachte Beispiel:Wie erhalten Sie sowohl den Rückgabecode als auch die Ausgabe vom Subprozess in Python?
import subprocess
...
def exec_adb_command(adb_command):
return = subprocess.call(adb_command)
Wenn Befehl ausgeführt propery exec_adb_command 0 zurück, die in Ordnung ist.
Aber einige adb-Befehle geben nicht nur "0" oder "1" zurück, sondern erzeugen auch einige Ausgaben, die ich auch abfangen möchte. adb devices zum Beispiel:
D:\git\adb-lib\test>adb devices
List of devices attached
07eeb4bb device
Ich habe bereits versucht subprocess.check_output() zu diesem Zweck, und es tut Ausgang zurück, aber nicht den Return-Code ("0" oder "1").
Idealerweise würde ich ein Tupel erhalten wollen, in dem t [0] Rückgabecode ist und t [1] die tatsächliche Ausgabe ist.
Fehle ich etwas im Subprozessmodul, das bereits solche Ergebnisse zulässt?
Danke!
Than k Sie für die breite Antwort! –
@ViktorMalyi, kein Problem, gern geschehen. –