我正在编写一个python脚本,该脚本使用Windows命令行向设备发送命令,然后读取输出迭代其内容:
proc = subprocess.Popen("adb logcat | findstr Test", stdout=subprocess.PIPE)
for line in proc.stdout:
if "stopped" in line:
print line
print "Test Service finished n"
break
else:
print line
不幸的是,我得到了以下信息:
>>>
/system/bin/sh: findstr: not found
output error: Broken pipe
如果没有"|findstr-Gps",它也可以工作,但发送到管道的输出量太大,最终会导致内存事件。
你知道我做错了什么吗?
提前感谢!
我认为这可能有效(不确定stderr=subprocess.PIPE
是否真的是必要的,尽管它不会有什么害处(:
proc = subprocess.Popen("adb logcat | findstr Test", stdout=subprocess.PIPE,
stderr=subprocess.PIPE))
stdoutdata, stderrdata = proc.communicate()
for line in stdoutdata:
if "stopped" in line:
print line
print "Test Service finished n"
break
else:
print line