次のコードを使用して、Pythonを使用してファイルでgrepを起動しようとしています。
def runProcess(self, cmd):
p = subprocess.Popen(cmd, bufsize=16000, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
return iter(p.stdout.readline, b'')
問題は、起動するたびに異なる一致が得られることです。一部の行は、returnオブジェクトで単にスキップされます。バッファが上書きされたのと同じように。私はこれを機能させるためにサブプロセスで見つけたすべての方法を試しましたが、すべて同じ問題が発生します。
詳細については、シェルで直接grepコマンドをテストしましたが、完全に機能します。これが、関数にcmd引数として渡すものです。
['egrep', '-wi', '-nr', "'keyword1|keyword2|blabla'", 'test/match_inside.txt']
また、bufsizeにさまざまな値を使用してみました(cの値はありません)