Вы можете попытаться перенаправить sys.stdout в StringIO для захвата любого текстового вывода. Таким образом, в основном все, что будет напечатано, будет сохранено в text_trap.
import io
import sys
#setup text trap
text_trap = io.StringIO()
sys.stdout = text_trap
#to reset the text trap
sys.stdout = sys.__stdout__
Рабочий пример:
from io import BytesIO as StringIO
import sys
if __name__ == "__main__":
print "hello1"
#setup text trap
text_trap = StringIO()
sys.stdout = text_trap
print("hello2")
#reset
sys.stdout = sys.__stdout__
print "hello3"
Вывод:
hello1
hello3