脚本中执行adb命令

一、不要获取adb命令输出结果
使用os.system()方式执行adb命令,不返回输出值(无法获取到adb命令执行结果);os.system默认阻塞当前程序执行,在cmd命令前加入start可不阻塞当前程序执行。

import os
a=os.system(r'adb devices')
print(a) #返回 0,表示执行adb命令执行成功
#os.system默认阻塞当前程序执行,在cmd命令前加入start可不阻塞当前程序执行,可并行执行adb命令
os.system('start adb shell ls')

二、可以获取adb命令输出结果
使用os.popen(‘adb命令’).read(),支持读取

import os
a=os.popen(r'adb devices')
b=os.popen(r'adb devices').read()
print(a)#<os._wrap_close object at 0x00000154C74B1508>
print(b)
'''List of devices attached
c2913bcb	device'''

三、执行外部命令,有返回值,如(除adb外的ls,cd等)

import subprocess
def command(cmd):
    p = subprocess.Popen(cmd, stdout=subprocess.PIPE,stderr=subprocess.PIPE,stdin=subprocess.PIPE, shell=True)
    (output, err) = p.communicate()
    s = str(output, encoding='utf-8')
    return s

p=command('adb shell ls -l ')
print(p)