I'm trying to get the output of a adb command using the following code:
pathCmd = './adb shell pm path ' + packageName
pathData = subprocess.Popen(pathCmd,stdout = subprocess.PIPE)
result = pathData.stdout.read()
print result
Any idea why doesn't this command work?
This is the error I see:
OSError: [Errno 2] No such file or directory
I can get the output as os.system but it fails for a subprocess
解决方案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)