Comment faire pour capturer la sortie standard sortie d'un Python appel de fonction?

Je suis en utilisant une bibliothèque Python qui fait quelque chose à un objet

do_something(my_object)

et la change. En faisant de la sorte, il affiche des statistiques sur la sortie standard, et j'aimerais avoir de l'emprise sur cette information. La bonne solution serait de changer do_something() pour retourner des informations pertinentes,

out = do_something(my_object)

mais il faudra un certain temps avant que les devs de do_something() à cette question. Comme solution, j'ai pensé à l'analyse ce que do_something() écrit sur la sortie standard stdout.

Comment capturer la sortie standard (stdout) de sortie entre deux points dans le code, par exemple,

start_capturing()
do_something(my_object)
out = end_capturing()

?