文章目录
python如何调用adb命令
1、 adb了解
2、python使用
os库
subprocess库
3、控制台输出写入到文件里
1、adb:
如果你是小白可以了解一下下方链接,有adb介绍、下载、环境变量配置还有常用命令,自己去看吧!
链接:adb小白文档
2、python使用
os库:
- 库:import os
- 使用命令:os.system(’ ')
- 缺点:每次使用一下os.system(’ ')命令,就会弹出一个cmd窗口,直到命令执行完毕后才关闭,如果内容比较多的话很麻烦
import os
#adb shell xxx的封装
def execute(cmd):
adbShell = "adb shell {cmdStr}"
str = adbShell.format(cmdStr=cmd)
print(str)
os.system(str)
if __name__ == '__main__':
# 完整命令的
os.system("adb shell input keyevent 4")
# adb shell xxx的封装
execute("input keyevent 4")
subprocess库
- 库:import subprocess
- 使用命令:subprocess.run(‘ ',shell = True)
- 特点:解决os库的问题,cmd窗口静默后台执行,不会弹出来烦人。(默认shell = True)表示命令将通过shell执行。
import subprocess
if __name__ == '__main__':
for i in range(50):
subprocess.run("adb shell input keyevent 4",shell=True)
print(i)
3、将控制台输出写入到文件中,第二种代码没怎么明白,有懂的下面评论哦!
第一种:
import subprocess
#开一个进程运行,r收集到返回值,r的类型是字节
r = subprocess.Popen(['python','tmp_py.py'],stdout=subprocess.PIPE).communicate()[0]
//subprocess.PIPE:利用subprocess实现管道(pipe)交互操作读/写通信
//Popen.communicate()用来等待外部程序执行结束
#记录到文件中
with open('tmp_log.log', 'wb') as f:
f.write(r)
第二种:
#shell =True是关键,不然报错
import subprocess
subprocess.run('python tmp_py.py >> tmp_log.log', shell=True)