我正在编写一个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”的情况下工作,但是发送到管道的输出量太大而且最终会导致内存事件。
任何想法我做错了什么?
提前致谢!
答案 0 :(得分:0)
我认为这可能有用(不确定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