將stdout 重新導向到字串緩衝區
使用Python 的FTP 用戶端等函式庫時,可能會遇到某些函數向stdout 提供輸出的情況而不是傳回字串值。要擷取此輸出,需要將 stdout 重新導向到可以儲存資料的合適物件。
與 Java 的 BufferedReader 不同,Python 提供了不同的方法。 cStringIO 模組(在 Python 3 中被 io 取代)提供了一個 StringIO 類,用作記憶體緩衝區。此緩衝區可以有效地包裹在 stdout 等流中以攔截輸出。
要實現此重定向,請按照以下步驟操作:
import sys from cStringIO import StringIO # Store the original stdout stream old_stdout = sys.stdout # Create the in-memory buffer sys.stdout = mystdout = StringIO() # Execute code that generates output normally directed to stdout # Restore the original stdout stream sys.stdout = old_stdout # Access the output via mystdout.getvalue()
透過此方法,函數產生的輸出將在StringIO 物件(mystdout) 中捕獲,稍後可以透過使用mystdout.getvalue() 讀取其值來存取該物件。
以上是如何在 Python 中將 stdout 重定向到字串緩衝區?的詳細內容。更多資訊請關注PHP中文網其他相關文章!