Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menangkap Output Standard daripada Panggilan Fungsi Python?

Bagaimana untuk Menangkap Output Standard daripada Panggilan Fungsi Python?

Susan Sarandon
Lepaskan: 2024-11-03 13:20:03
asal
773 orang telah melayarinya

How to Capture Standard Output from Python Function Calls?

Menangkap Output Standard daripada Panggilan Fungsi Python

Apabila menggunakan perpustakaan Python yang mengubah suai objek dan mencetak statistik untuk stdout, mungkin terdapat keperluan untuk tangkap output ini untuk analisis selanjutnya. Walau bagaimanapun, mengubah suai secara langsung fungsi untuk mengembalikan maklumat sedemikian mungkin tidak selalu dapat dilaksanakan.

Untuk menangani perkara ini, seseorang boleh menggunakan pengurus konteks Capturing:

<code class="python">from io import StringIO
import sys

class Capturing(list):
    def __enter__(self):
        self._stdout = sys.stdout
        sys.stdout = self._stringio = StringIO()
        return self
    def __exit__(self, *args):
        self.extend(self._stringio.getvalue().splitlines())
        del self._stringio  # free up some memory
        sys.stdout = self._stdout</code>
Salin selepas log masuk

Pengurus konteks Capturing boleh digunakan seperti berikut:

<code class="python">with Capturing() as output:
    do_something(my_object)</code>
Salin selepas log masuk

Selepas panggilan fungsi, senarai output akan mengandungi baris yang dicetak oleh fungsi.

Teknik ini boleh digunakan beberapa kali, dan hasilnya boleh digabungkan:

<code class="python">with Capturing() as output:
    print('hello world')

print('displays on screen')

with Capturing(output) as output:  # note the constructor argument
    print('hello world2')

print('done')
print('output:', output)</code>
Salin selepas log masuk

Output:

displays on screen
done
output: ['hello world', 'hello world2']
Salin selepas log masuk

Pendekatan ini menyediakan penyelesaian yang berkesan untuk menangkap output stdout apabila tidak mungkin untuk mengubah suai fungsi do_something() secara langsung.

Atas ialah kandungan terperinci Bagaimana untuk Menangkap Output Standard daripada Panggilan Fungsi 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan