python中subprocess.Popen执⾏命令并持续获取返回值
先举⼀个Android查询连接设备的命令来看看Python中subprocess.Popen怎么样的写法。⽤到的命令为 adb devices。
python能在手机上运行吗  import subprocess
  order='adb devices' #获取连接设备
  pi= subprocess.Popen(order,shell=True,stdout=subprocess.PIPE)
  print ad()#打印结果
命令的结果返回是⼀次性的,所以我们⽤read⽅法读取数据是没有问题的,然⽽adb命令⾥还有⼀些是实时返回结果的,⽐如输出⼿机⽇志的命令logcat,结果会不断的打印出来当前的设备操作⽇志信息内容,这种类型的命令我们在Python中如果需要获取打印结果,如果还是⽤read⽅法的话,等待结果的返回时间会⾮常长,这⾥我们就要换⼀种⽅法读取结果,写法如下。
  import subprocess
  order='adb logcat'
  pi= subprocess.Popen(order,shell=True,stdout=subprocess.PIPE)
  for i in iter(adline,'b'):
  print i
这样的打印效果,如同cmd⾥操作⼀致,实时的打印出⽇志信息。这⾥我们就⽤到了readline⽅法和iter()函数,其实这种写法类似我们读取⽂件,单⾏读取和全部内容读取。
---------------------------------------------------------------------------------
关注即可在⼿机上查阅,并可接收更多测试分享~