2

我正在编写一个 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”的情况下工作,但是发送到管道的输出量太大,最终导致内存事件。

任何想法我做错了什么?

提前致谢!

4

1 回答 1

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
于 2013-02-26T15:53:36.523 回答