Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menstrim Baris Output Subproses mengikut Baris dalam Python?
Penstriman Output daripada subprocess.communicate()
Fungsi subprocess.communicate() Python berguna untuk menangkap stdout proses. Walau bagaimanapun, ia biasanya mengembalikan semua output sekaligus. Ini boleh menyusahkan proses yang menjana output dalam tempoh yang berpanjangan. Untuk menangani perkara ini, kami meneroka teknik untuk mencetak setiap baris stdout proses dalam fesyen penstriman.
Penyelesaian
Dengan menggunakan mekanisme lelaran, kami boleh mendapatkan semula baris daripada stdout sebaik sahaja ia menjadi tersedia:
from subprocess import Popen, PIPE # Launch a process with buffering set to 1 byte p = Popen(["cmd", "arg1"], stdout=PIPE, bufsize=1) # Iterate over the stdout lines as they become available with p.stdout: for line in iter(p.stdout.readline, b''): print(line, end='') # Wait for the process to terminate p.wait()
Penjelasan
Nota Tambahan
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menstrim Baris Output Subproses mengikut Baris dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!