実行中に Python でライブ サブプロセス出力を表示するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-10-30 05:36:27
オリジナル
264 人が閲覧しました

How can I display live subprocess output in Python while it's executing?

実行中のライブ サブプロセス出力の表示

Python スクリプトでサブプロセスを利用する場合、出力にアクセスする前にプロセスが完了するのを待つのはイライラすることがあります。これは、プロセスに時間がかかる場合に特に顕著になります。したがって、生成された出力を継続的に表示する方法を見つける必要があります。

これを実現するには、iter 関数を使用して、コマンドによって出力されるとすぐに行を処理します。次のコード サンプルは、一般的な使用例を示しています。

<code class="python">from __future__ import print_function # Only Python 2.x
import subprocess

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)

# Example
for path in execute(["locate", "a"]):
    print(path, end="")</code>
ログイン後にコピー

このメソッドを利用すると、プロセスの実行中にプロセスからの出力を効果的にストリーミングできるため、プロセスの完了を待つ必要がなくなります。

以上が実行中に Python でライブ サブプロセス出力を表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!