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
Susan Sarandonasal
2024-12-06 12:08:11839semak imbas

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()

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!

Kenyataan:
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