перенаправить стандартный вывод в текстовый виджет tkinter

Я пытаюсь перенаправить стандартный вывод функции в текстовый виджет tkinter. Проблема, с которой я сталкиваюсь, заключается в том, что она записывает каждую строку в новое окно, а не перечисляет все в одном. Функция сканирует каталог и перечисляет любой файл, который является 0k. Если нет файлов 0k, это печатает это. Таким образом, проблема в том, что если в каталоге 30 файлов по 30 Кб, откроется 30 окон с одной строкой в ​​каждом. Теперь я знаю, в чем проблема. Если вы посмотрите в мой код функцииZerok() Я говорю это:

if os.stat(filename).st_size==0:  
       redirector(filename)

Я знаю, что каждый раз, когда os.stat видит файл 0k, он затем отправляет его перенаправителю, поэтому для каждого файла появляется новое окно. Я просто понятия не имею, как это исправить. Заполните код ниже. Спасибо за помощь.

import Tkinter
from Tkinter import *
import tkFileDialog

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)

def redirector(inputStr):
    import sys
    root = Tk()
    sys.stdout = StdoutRedirector(root)
    T = Text(root)
    T.pack()
    T.insert(END, inputStr)

####This Function checks a User defined directory for 0k files
def Zerok():
    import os
    sys.stdout.write = redirector #whenever sys.stdout.write is called, redirector is called.
    PATH = tkFileDialog.askdirectory(initialdir="/",title='Please select a directory')  
    for root,dirs,files in os.walk(PATH):  
     for name in files:  
      filename=os.path.join(root,name)  
      if os.stat(filename).st_size==0:  
       redirector(filename)
      else:
          redirector("There are no empty files in that Directory")
          break

#############################Main GUI Window###########################
win = Tk()
f = Frame(win)
b1 = Button(f,text="List Size")
b2 = Button(f,text="ZeroK")
b3 = Button(f,text="Rename")
b4 = Button(f,text="ListGen")
b5 = Button(f,text="ListDir")
b1.pack()
b2.pack()
b3.pack()
b4.pack()
b5.pack()
l = Label(win, text="Select an Option")
l.pack()
f.pack()
b2.configure(command=Zerok)
win.mainloop()