Skip to main content
 首页 » 编程设计

python之在 Python 和 Windows 7 中使用 "findstr"循环遍历 stdout 命令行内容

2025年05月04日15bjzhanghao

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