Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah saya boleh memaparkan output subproses secara langsung dalam Python semasa ia dilaksanakan?

Bagaimanakah saya boleh memaparkan output subproses secara langsung dalam Python semasa ia dilaksanakan?

Patricia Arquette
Lepaskan: 2024-10-30 05:36:27
asal
341 orang telah melayarinya

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

Memaparkan Output Subproses Langsung Semasa Pelaksanaan

Apabila menggunakan subproses dalam skrip Python, ia boleh mengecewakan untuk menunggu proses selesai sebelum mengakses outputnya. Ini menjadi jelas terutamanya untuk proses yang panjang. Oleh itu, adalah perlu untuk mencari cara untuk memaparkan output secara berterusan semasa ia dijana.

Untuk mencapai ini, anda boleh menggunakan fungsi iter untuk memproses baris serta-merta selepas dikeluarkan oleh arahan. Sampel kod berikut menunjukkan kes penggunaan biasa:

<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>
Salin selepas log masuk

Menggunakan kaedah ini, anda boleh menstrim output dengan berkesan semasa proses itu berjalan, dengan itu menghapuskan keperluan untuk menunggu siap.

Atas ialah kandungan terperinci Bagaimanakah saya boleh memaparkan output subproses secara langsung dalam Python semasa ia dilaksanakan?. 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