わかりましたので、そのようなスレッドを何十も見てきましたが、完全な答えが得られるものはなく、これまでに試したすべての敵がうまくいきませんでした。
1) 一定のデータを常に出力してフラッシュするスクリプト:
import time
import sys
if __name__ == '__main__':
for i in range(5):
print i,
sys.stdout.flush()
time.sleep(1)
2) Popen で最初のスクリプトを呼び出し、数値を 1 つずつ出力する必要があるのに、何らかの理由で数値を出力せず、それらを一度にまとめて出力するスクリプト:
import sys
import subprocess
if __name__ == '__main__':
process = subprocess.Popen(['python', 'flush.py'], stdout = subprocess.PIPE )
for line in iter(process.stdout.readline, ''):
print line,
sys.stdout.flush()
最初に少し混乱しているのは、最初のスクリプトで、フラッシュを削除すると、出力が 1 行にまとめて O_O に返されることです... time.sleep が原因であると確信していますが、それでも標準出力は常に値0、1、2、3、4を返しますが、すべて一緒ではありません。もちろん、フラッシュはそれを解決しますが、少なくとも私にとっては奇妙です...
主な問題: 2 番目のスクリプトは番号を 1 つずつ返さず、一度にすべてを 1 つの出力で返します..... 必要なのは、数字が 1 つずつ飛び出すのを確認することです...
Popenがパイプを閉じるのを待つEOFを返さないことをどこかで読みました。それが最後まで実行される理由です.....
それで、私は何をするか、次に試しますか? 前もって感謝します。