[解決済み] subprocess.communication()からストリーミング入力を読み込む。
2023-03-30 12:15:43
質問
私はPythonの
subprocess.communicate()
を使用して、約1分間実行されるプロセスから標準出力を読み込んでいます。
どうすれば、そのプロセスの各行をプリントアウトすることができるでしょうか。
stdout
の各行をストリーミング形式で印刷し、生成される出力を見ることができますが、それでも継続する前にプロセスが終了するのをブロックするにはどうしたらよいでしょうか?
subprocess.communicate()
は一度にすべての出力を与えるように見えます。
どのように解決するのですか?
ご注意ください、私は J.F.セバスチャンの方法(下) の方が良いと思います。
以下は簡単な例です(エラーチェックはしていません)。
import subprocess
proc = subprocess.Popen('ls',
shell=True,
stdout=subprocess.PIPE,
)
while proc.poll() is None:
output = proc.stdout.readline()
print output,
もし
ls
の終了が速すぎる場合、すべてのデータを読み込む前に while ループが終了してしまう可能性があります。
この方法で、stdoutに残りをキャッチすることができます。
output = proc.communicate()[0]
print output,
関連
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み] リストからランダムに項目を選択するにはどうすればよいですか?
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み] Pythonで明示的にメモリを解放するにはどうしたらいいですか?
-
[解決済み】サブプロセスコマンドからのライブ出力
-
[解決済み] 小数点以下1桁を取得する[重複]。
-
[解決済み] あるオブジェクトが数であるかどうかを確認する、最もパイソン的な方法は何でしょうか?
-
[解決済み] Pythonで、ウェブサイトが404か200かを確認するためにurllibをどのように使用しますか?
-
[解決済み] 認証プラグイン 'caching_sha2_password' はサポートされていません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] Pythonでコード行間にかかる時間を測定するには?
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] 値で列挙名を取得する [重複]。
-
[解決済み] スペースがないテキストを単語のリストに分割する方法
-
[解決済み] PyQtアプリケーションのスレッド化。QtスレッドとPythonスレッドのどちらを使うか?
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] Python Empty Generator 関数
-
[解決済み] 新しいpip backtrackingの実行時問題の解決
-
[解決済み] pipの依存性/必要条件をリストアップする方法はありますか?