Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah saya boleh mengubah hala Output Standard Python ke Penampan String?

Bagaimanakah saya boleh mengubah hala Output Standard Python ke Penampan String?

Barbara Streisand
Barbara Streisandasal
2024-11-24 07:18:13669semak imbas

How Can I Redirect Python's Standard Output to a String Buffer?

Ubah hala stdout ke String Buffer dalam Python

Dalam membangunkan klien FTP Python menggunakan pakej ftplib, anda mungkin menghadapi keadaan di mana fungsi tertentu dalam pakej kekurangan output rentetan tetapi sebaliknya cetak ke output standard (stdout). Untuk menangani cabaran ini, mengubah hala stdout kepada objek yang boleh dibaca dengan mudah menjadi perlu.

Walaupun pengalihan berasaskan fail melalui open() adalah pilihan, kaedah alternatif yang tidak menggunakan pemacu tempatan ialah lebih cekap. BufferedReader Java menawarkan contoh berharga untuk membungkus penimbal ke dalam strim.

Untuk mencapai kefungsian serupa dalam Python, gunakan pendekatan berikut:

from cStringIO import StringIO # Python3 use: from io import StringIO
import sys

old_stdout = sys.stdout
sys.stdout = mystdout = StringIO()

# Execute code that would normally print to stdout ...

sys.stdout = old_stdout

# Obtain the captured output as a string from mystdout.getvalue()

Dengan mengubah hala stdout ke contoh StringIO, anda boleh menangkap dan mendapatkan semula output sebagai rentetan bila-bila masa diperlukan. Teknik ini membolehkan fleksibiliti yang lebih besar dan menghapuskan keperluan untuk penglibatan fail luaran.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengubah hala Output Standard Python ke Penampan String?. 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