通常,第三方库会在执行期间将信息打印到 stdout。虽然这对于调试很有用,但它也会使输出混乱并扰乱其他进程。要控制此输出,请考虑利用上下文管理器来捕获它。
from io import StringIO <br>import sys<p>class捕获(列表):</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
捕获特定代码块内的输出:
<code class="python">with Capturing() as output: do_something(my_object)</code>
在块之后,输出变量将包含打印到的所有行的列表stdout。
以上是如何使用上下文管理器捕获 Python 函数的输出?的详细内容。更多信息请关注PHP中文网其他相关文章!