在 Python 和 Windows 7 中使用 "findstr" 遍历标准输出命令行内容



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

最新更新