Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mengulangi Baris Output Subproses mengikut Baris dalam Python Semasa Melog Semua Output?

Bagaimanakah Saya Boleh Mengulangi Baris Output Subproses mengikut Baris dalam Python Semasa Melog Semua Output?

Susan Sarandon
Lepaskan: 2024-12-06 12:08:11
asal
871 orang telah melayarinya

How Can I Iterate Over Subprocess Output Line by Line in Python While Logging All Output?

Lelaran Baris demi Baris Output Subproses

Apabila menggunakan subproses dalam Python untuk melaksanakan arahan luaran, pengendalian output boleh menjadi mencabar. Artikel ini menangani senario tertentu di mana skrip perlu menyimpan semua output ke fail log sambil memaparkan baris terpilih kepada pengguna secara serentak.

Pendekatan asal yang digunakan untuk baris dalam proc.stdout:, yang membaca keseluruhan output sekali gus sebelum diulang. Untuk mengatasi isu ini, penyelesaian yang dicadangkan ialah menggunakan readline() sebaliknya:

while True:
  line = proc.stdout.readline()
  if not line:
    break
  #the real code does filtering here
  print "test:", line.rstrip()
Salin selepas log masuk

Pendekatan ini membolehkan skrip mencetak setiap baris kerana ia diterima daripada subproses, memastikan penapisan output masa nyata.

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa pengendalian penimbal subproses boleh memperkenalkan kerumitan tambahan. Bergantung pada versi Python dan sistem pengendalian, penyelesaian yang dicadangkan mungkin menghasilkan hasil yang berbeza.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengulangi Baris Output Subproses mengikut Baris dalam Python Semasa Melog Semua Output?. 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