Python调用adb命令实现对多台设备同时进行reboot

Python调用adb命令实现对多台设备同时进行reboot


首先,adb实现对设备的reboot命令是:adb reboot . 但是如果是两台/多台设备的时候,需要声明serial number: adb -s serial_no reboot.

那么,如何用python实现对多台设备进行adb操作呢(reboot)?


这里涉及到 python 下 subprocess model的使用:

import subprocess


adb device 获取所有设备的 serial number:

devices = subprocess.Popen(
    'adb devices'.split(),
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE
).communicate()[0]


这样adb device命令的返回信息都在devices下,但是我们只需要 serial number的:

serial_nos = []
for item in devices.split():
    filters = ['list', 'of', 'device', 'devices', 'attached']
    if item.lower() not in filters:
        serial_nos.append(item)


这样serial_nos 下保存的就是所有设备的 serial number 了,下面我们只需要依次对其进行adb -s [serial_number] reboot即可:

for serial_no in serial_nos:
    reboot_cmds.append('adb -s %s reboot' % serial_no)
for reboot_cmd in reboot_cmds:
    subprocess.Popen(
        reboot_cmd.split(),
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE
    ).communicate()[0]


这样,每个设备都进行了reboot的操作了……


在这介绍一下subprocess model: Python中subprocess学习


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值