我正在尝试使用以下代码在带有 python 的文件上启动 grep:
def runProcess(self, cmd):
p = subprocess.Popen(cmd, bufsize=16000, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
return iter(p.stdout.readline, b'')
问题是我每次启动它时都会得到不同的匹配。一些行在返回对象中被简单地跳过。就像缓冲区已被覆盖一样。我已经尝试了我在 subprocess 中找到的所有方法来完成这项工作,但都导致了同样的问题。
有关信息,我已经直接在 shell 中测试了我的 grep 命令并且它运行良好,这是我作为 cmd 参数传递给我的函数的内容
['egrep', '-wi', '-nr', "'keyword1|keyword2|blabla'", 'test/match_inside.txt']
我也尝试过使用不同的 bufsize 值(并且没有 c 值)