使用 Python 获取 adb 输出

Sid*_*kan 5 python subprocess adb

我正在尝试使用以下代码获取 adb 命令的输出:

pathCmd = './adb shell pm path ' + packageName


pathData = subprocess.Popen(pathCmd,stdout = subprocess.PIPE)
result = pathData.stdout.read()
print result
Run Code Online (Sandbox Code Playgroud)

知道为什么这个命令不起作用吗?

这是我看到的错误:

OSError: [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)

我可以得到 os.system 的输出,但子进程失败

Ale*_* P. 1

import subprocess

ADB_PATH="adb"

def adbdevices(adbpath=ADB_PATH):
    return set([device.split('\t')[0] for device in subprocess.check_output([adbpath, 'devices']).splitlines() if device.endswith('\tdevice')])

def adbshell(command, serial=None, adbpath=ADB_PATH):
    args = [adbpath]
    if serial is not None:
        args.extend(['-s', serial])
    args.extend(['shell', command])
    return subprocess.check_output(args)

def pmpath(pname, serial=None, adbpath=ADB_PATH):
    return adbshell('pm path {}'.format(pname), serial=serial, adbpath=adbpath)
Run Code Online (Sandbox Code Playgroud)