python中subprocess.Popen执行命令并持续获取返回值
2024-10-19 07:29:36
先举一个Android查询连接设备的命令来看看Python中subprocess.Popen怎么样的写法。用到的命令为 adb devices。
import subprocess
order='adb devices' #获取连接设备
pi= subprocess.Popen(order,shell=True,stdout=subprocess.PIPE)
print pi.stdout.read()#打印结果
命令的结果返回是一次性的,所以我们用read方法读取数据是没有问题的,然而adb命令里还有一些是实时返回结果的,比如输出手机日志的命令logcat,结果会不断的打印出来当前的设备操作日志信息内容,这种类型的命令我们在Python中如果需要获取打印结果,如果还是用read方法的话,等待结果的返回时间会非常长,这里我们就要换一种方法读取结果,写法如下。
import subprocess
order='adb logcat'
pi=
subprocess.Popen(order,shell=True,stdout=subprocess.PIPE)
for i in iter(pi.stdout.readline,'b'):
print i
这样的打印效果,如同cmd里操作一致,实时的打印出日志信息。这里我们就用到了readline方法和iter()函数,其实这种写法类似我们读取文件,单行读取和全部内容读取。
最新文章
- Spring Data JPA @EnableJpaRepositories配置详解
- 用流来读取文件(getline,istringstream)
- dp px 转换工具
- 湖南省第十二届大学生计算机程序设计竞赛 A 2016
- Xcode模板修改
- javaweb学习总结十六(tomcat服务器的使用、虚拟目录的映射)
- 用python随机生成数据,再插入到postgresql中
- 百度apistore第三方登陆
- 用批处理编译*.sln工程
- vue学习之vue基本功能初探
- Dynamics 365 for CRM:修改ADFS的过期时间,TokenLifetime
- Mybatis分页插件——PageHelper
- [USACO18JAN]Sprinklers
- Jmeter-JDBC Request参数化
- 关于Linux 虚拟机如何才能ping 通外网
- Django学习手册 - 自定义simple_tag / filter
- linux export source
- 【题解】Luogu P1204 [USACO1.2]挤牛奶Milking Cows
- P1033自由落体
- 理解Backtracking