我正在编写一个 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
