Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mendapatkan Output Masa Nyata daripada Subprocess.Popen dalam Python?

Bagaimana untuk Mendapatkan Output Masa Nyata daripada Subprocess.Popen dalam Python?

DDD
Lepaskan: 2024-11-14 19:32:02
asal
664 orang telah melayarinya

How to Get Realtime Output from Subprocess.Popen in Python?

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

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan