Вам нужно создать файловый класс, метод которого write
записывает вместо этого в виджет Tkinter, а затем выполнить sys.stdout = <your new class>
. См этот вопрос .
Пример (скопировано по ссылке):
class IORedirector(object):
'''A general class for redirecting I/O to this Text widget.'''
def __init__(self,text_area):
self.text_area = text_area
class StdoutRedirector(IORedirector):
'''A class for redirecting stdout to this Text widget.'''
def write(self,str):
self.text_area.write(str,False)
и затем в вашем виджете Tkinter:
# To start redirecting stdout:
import sys
sys.stdout = StdoutRedirector( self )
# (where self refers to the widget)
# To stop redirecting stdout:
sys.stdout = sys.__stdout__