Mendapatkan Output Masa Nyata Menggunakan subproses
Subproses ialah modul berkuasa dalam Python yang digunakan untuk melaksanakan atur cara lain dan berinteraksi dengan input dan outputnya. Walau bagaimanapun, pengguna mungkin menghadapi senario di mana mereka perlu mendapatkan semula output daripada program yang dilaksanakan dalam masa nyata, tanpa sebarang penimbalan.
Penerangan Masalah
Isu timbul apabila menggunakan subproses.Popen dengan set stdout sebagai paip. Output daripada program yang dibalut nampaknya ditimbal, menghasilkan potongan data dan bukannya penghantaran baris demi baris. Menetapkan parameter bufsize kepada 1 atau 0 tidak menyelesaikan isu.
Penyelesaian: Pembacaan Berulang daripada readline()
Walaupun gelagat subproses yang disebutkan di atas, coretan kod berikut mendapatkan semula keluaran secara berkesan dalam masa nyata:
while True: line = p.stdout.readline() if not line: break ...
Menggunakan readline() dan bukannya mengulangi p.stdout secara langsung memintas isu penimbalan dan membolehkan mendapatkan semula output masa nyata.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Output Masa Nyata daripada Subprocess.Popen dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!