При разработке библиотеки оболочки python для Android Debug Bridge (ADB) я использую подпроцесс для выполнения команд adb в оболочке. Вот упрощенный пример:
import subprocess
...
def exec_adb_command(adb_command):
return = subprocess.call(adb_command)
Если команда выполнена правильно, exec_adb_command возвращает 0, это нормально.
Но некоторые команды adb возвращают не только "0" или "1", но также генерируют некоторый вывод, который я хочу также поймать. adb, например:
D:\git\adb-lib\test>adb devices
List of devices attached
07eeb4bb device
Я уже пробовал subprocess.check_output() для этой цели, и он возвращает результат, но не код возврата ( "0" или "1" ).
В идеале я хотел бы получить кортеж, где t [0] - это код возврата, а t [1] - фактический вывод.
Я пропустил что-то в модуле подпроцесса, который уже позволяет получить такие результаты?
Спасибо!