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!