通常,第三方函式庫會在執行期間將資訊列印到 stdout。雖然這對於偵錯很有用,但它也會使輸出混亂並擾亂其他進程。要控制此輸出,請考慮利用上下文管理器來捕獲它。
from io import StringIO <br>import sys<p>class Capturing(列表):</p><pre class="brush:php;toolbar:false">def __enter__(self): self._stdout = sys.stdout sys.stdout = self._stringio = StringIO() return self def __exit__(self, *args): self.extend(self._stringio.getvalue().splitlines()) del self._stringio # free up some memory sys.stdout = self._stdout
class Capturing (列表):
用法<code class="python">with Capturing() as output: do_something(my_object)</code>
捕獲特定程式碼區塊內的輸出:
之後在區塊中,輸出變數將包含列印到stdout 的所有行的清單。以上是如何使用上下文管理器捕獲 Python 函數的輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!