Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Menangkap Output Standard dalam Python?

Bagaimana untuk Menangkap Output Standard dalam Python?

DDD
Lepaskan: 2024-11-03 13:34:30
asal
813 orang telah melayarinya

How to Capture Standard Output in Python?

Menangkap Output Standard dalam Python

Dalam Python, selalunya berguna untuk menangkap output yang dicetak ke output standard (stdout) untuk pelbagai sebab , seperti menyimpannya untuk pemprosesan atau ujian kemudian. Satu senario biasa melibatkan panggilan fungsi daripada perpustakaan, seperti do_something(my_object), yang mencetak maklumat ke stdout.

Untuk menangkap output panggilan fungsi ini, pendekatan berikut boleh digunakan:

  1. Laksanakan Pengurus Konteks Penggabungjalinan (Menangkap):

    • Tentukan kelas bernama Menangkap yang mewarisi daripada senarai.
    • Laksanakan kaedah __enter__ dan __exit__nya untuk menangkap output stdout.
    • Dalam kaedah __enter__nya, simpan stdout semasa ke dalam self._stdout dan ubah hala stdout ke penimbal StringIO dalam memori (self._stringio).
    • Dalam kaedah __exit__nya, tambahkan output yang ditangkap pada senarai dalamannya (self) selepas memulihkan stdout kepada keadaan asalnya.
  2. Gunakan Konteks Pengurus:

    • Gunakan pernyataan dengan untuk mencipta tika Tangkapan.
    • Lepaskan tika itu sebagai hujah kepada kaedah Tangkapan __init__ untuk menambahkan output tangkapannya pada contoh yang dibuat pada sebelumnya langkah.
  3. Dapatkan Output Yang Ditangkap:

    • Selepas keluar dari blok dengan, pembolehubah output kini mengandungi yang ditangkap output stdout sebagai senarai rentetan.

Contoh Penggunaan:

<code class="python">from contextlib import redirect_stdout  # redirect_stdout is only available in Python 3.4 or later

def do_something(my_object):
    print('stdout info')

with redirect_stdout(StringIO()) as stdout:
    do_something(my_object)
    captured_output = stdout.getvalue()</code>
Salin selepas log masuk

Menggunakan sintaks Python 3.4:

<code class="python">with StringIO() as output:
    with redirect_stdout(output):
        do_something(my_object)
    captured_output = output.getvalue()</code>
Salin selepas log masuk

Dengan mengikuti langkah ini, anda boleh menangkap output stdout dengan mudah daripada panggilan fungsi Python, membolehkan anda menggunakan maklumat bercetak untuk pemprosesan selanjutnya, penyahpepijatan, atau tujuan ujian.

Atas ialah kandungan terperinci Bagaimana untuk Menangkap Output Standard 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