1
一般的に、この質問には多くの回答がありますが、どれも行ごとの読み取りに限定されています。たとえば、このコード:Popenの標準出力をリアルタイムでPythonの行ごとに取得する方法はありますか?
def execute(cmd):
popen = subprocess.Popen(cmd, stdout=subprocess.PIPE, universal_newlines=True)
for stdout_line in iter(popen.stdout.readline, ""):
yield stdout_line
popen.stdout.close()
return_code = popen.wait()
if return_code:
raise subprocess.CalledProcessError(return_code, cmd)
しかし、このような例のための出力ライン(ドットが〜10sの中で一度追加された場合)があります。
............................
は、彼らが実行するタスクの進行状況を表示します。私は、行が終了するまで出力を止めたくないので、ドット行全体を印刷します。
だから私はときyield string
する必要があります。そこに出力のいずれかのシンボルがあり、より
- 1秒がになりました(問題なく行が終わったかどうか)。
しかし、私はこれを行う方法がわかりません。
p.s.多分ダブ。見つけられませんでした。
ファジーなもの。 'StringIO'にリダイレクトしますが、時間/サイズに達したかどうかをチェックするためには、すべてのcpu_clockをチェックする必要があります。この関連ユーザ/アプリケーション出力メソッド。出力がない場合は、リソースを無駄にしないでください!すべてのコマンドやアプリケーションの出力を毎回別々にする必要がありますが、すべての通信にタイマーの 'server'または' client'ベースが必要です。 'RTC'のものが失われているので両方を使うことはできません** – dsgdfg