Redirecting stdout to Capture Function Output
This question addresses the need to capture stdout output from a Python function, namely do_something(my_object), which modifies the object and prints statistics along the way.
To achieve this, a context manager class, Capturing, has been proposed. This class provides two key functions:
Usage of the context manager is straightforward:
<code class="python">with Capturing() as output: do_something(my_object)</code>
At this point, the output variable will contain a list of the lines printed by do_something().
Additionally, it is noted that this technique can be used multiple times to capture output from different function calls. The results will be concatenated in the same output list.
This approach is particularly useful when the function being called cannot be modified to return the desired information.
The above is the detailed content of How Can I Capture the Output of a Python Function Using a Context Manager?. For more information, please follow other related articles on the PHP Chinese website!