Python でファイルのようなものを繰り返し処理することは、そのメソッドをループで呼び出すことと同じだといつも思っていreadline
ましたが、今日、そうではない状況を見つけました。具体的には、私はPopen
'd プロセスを持ってp
います
list(itertools.takewhile(lambda x: x != "\n",
p.stdout))
ハングします (おそらくp
、入力を待機するためです。 と の両方stdin
がstdout
Python プロセスへのパイプです)。
list(itertools.takewhile(lambda x: x != "\n",
iter(p.stdout.readline, "")))
誰かが違いを説明できますか?