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
Lepaskan: 2024-11-24 07:18:13
asal
612 orang telah melayarinya

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()
Salin selepas log masuk

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!

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