Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menstrim Output Proses dalam Masa Nyata dalam Python?

Bagaimana untuk Menstrim Output Proses dalam Masa Nyata dalam Python?

Mary-Kate Olsen
Lepaskan: 2024-10-29 04:15:29
asal
664 orang telah melayarinya

How to Stream Process Output in Real-Time in Python?

Paparan Output Berterusan semasa Perlaksanaan Proses

Dalam skrip Python, kami sering menggunakan subproses untuk melaksanakan program luaran. Walaupun ini adalah keupayaan yang berkuasa, ia boleh mengecewakan untuk menunggu proses selesai sebelum mendapatkan semula outputnya. Untuk menangani perkara ini, mari kita teroka kaedah untuk menstrim output proses secara berterusan semasa proses itu berjalan.

Secara tradisinya, kami menggunakan subprocess.communicate() untuk menangkap keseluruhan output proses setelah selesai. Walau bagaimanapun, pendekatan ini memerlukan proses untuk dilengkapkan sepenuhnya sebelum sebarang output boleh dipaparkan.

Untuk mendayakan output berterusan, kami boleh memanfaatkan fungsi iter bersama-sama dengan fd.readline(). Ini membolehkan kami mengulangi aliran stdout proses, menangkap baris apabila ia tersedia:

<code class="python">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)</code>
Salin selepas log masuk

Dalam versi dipertingkat ini, kami menghasilkan setiap baris stdout apabila ia tersedia. Ini membolehkan skrip memaparkan output secara berterusan kerana ia dijana oleh proses.

Berikut ialah contoh ilustrasi:

<code class="python">for path in execute(["locate", "a"]):
    print(path, end="")</code>
Salin selepas log masuk

Menggunakan pendekatan ini, kami boleh terus memaparkan laluan yang sepadan dengan pertanyaan carian "a" kerana ia ditemui oleh arahan "locate", memberikan maklum balas masa nyata tentang kemajuan proses.

Teknik ini membolehkan pemantauan output berterusan, meningkatkan interaktiviti dan pengalaman pengguna skrip yang melancarkan proses luaran.

Atas ialah kandungan terperinci Bagaimana untuk Menstrim Output Proses dalam Masa Nyata dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan