pythonでテキストファイルを読みだし自動スクロール

ソースは以下です

### インポート
import tkinter
from tkinter import *
from tkinter.scrolledtext import ScrolledText
import threading
import time
### インポート
import tkinter
import glob
from tkinter import *
from PIL import ImageTk, Image
import os
import sys
import time
import tkinter
from PIL import Image, ImageTk
import threading
import time
import glob
import os,sys
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
from tkinter import messagebox
from PIL import Image, ImageTk
import shutil
import os
import glob
from tkinter import filedialog as tkFileDialog
import tkinter as tk
from tkinter import font
import tkinter.font as tkFont
        
from chardet import detect 


class main_class():  
    def __init__(self, main):
        self.h=30
        self.w=100
        print ("__init__")  
        self.interval=0.5
        self.kill = 0
        self.font=10
        button1= Button(root, text=u'終了', command=self.quit)  
        button1.grid(row=0, column=1)  
        button1.place(x=900, y=30) 
        self.textExample=ScrolledText(root, width=self.w,height=self.h, wrap=tkinter.CHAR)
        self.textExample.pack()
        self.textExample.place(x=90, y=70)



        button3= Button(root, text=u'ファイル   選択', command=self.button3_clicked) 
        button3.grid(row=0, column=1)  
        button3.place(x=100, y=30) 

        button4= Button(root, text=u'中断', command=self.button4_clicked)  
        button4.grid(row=0, column=1)  
        button4.place(x=250, y=30) 

        button7= Button(root, text=u'再開', command=self.button7_clicked)  
        button7.grid(row=0, column=1)  
        button7.place(x=300, y=30) 

        button5= Button(root, text=u'遅く', command=self.button5_clicked)  
        button5.grid(row=0, column=1)  
        button5.place(x=350, y=30) 

        button6= Button(root, text=u'早く', command=self.button6_clicked)  
        button6.grid(row=0, column=1)  
        button6.place(x=400, y=30) 

        button8= Button(root, text=u'フォント大', command=self.button8_clicked)  
        button8.grid(row=0, column=1)  
        button8.place(x=450, y=30) 

        button9= Button(root, text=u'フォント小', command=self.button9_clicked)  
        button9.grid(row=0, column=1)  
        button9.place(x=520, y=30) 

        button10= Button(root, text=u'枠大', command=self.button10_clicked)  
        button10.grid(row=0, column=1)  
        button10.place(x=600, y=30) 

        button11= Button(root, text=u'枠小', command=self.button11_clicked)  
        button11.grid(row=0, column=1)  
        button11.place(x=650, y=30) 

    def method0(self,message):  
        print ("method0")  
        self.textExample.insert(tkinter.END,message)

    def thread_method(self):
        loop_flag=loop_v.get()
        print ("xxxxxxxxxxxxxxxxxxxxxxxxxxxxx")  
        print(loop_flag)
        if(loop_flag==1):
            self.text_main()
        else:
            while(1):
                if(self.kill==1):
                    break        
                self.text_main()


        
                        
    def text_main(self):


        if(self.stop==1):
            while(1):
                time.sleep(1)
                if(self.stop==0):
                    break    
            self.textExample.delete("1.0",tkinter.END)

        for name in self.filenames:
            if(self.kill==1):
                break        
            if(self.stop==1):
                while(1):
                    time.sleep(1)
                    if(self.kill==1):
                        break        
                    if(self.stop==0):
                        break    

            with open(name, 'rb') as f:  # バイナリファイルとしてファイルをオープン
                b = f.read()  # ファイルの内容を全て読み込む

            enc = detect(b)
            self.encode_type=enc['encoding']
            with open(name,encoding=self.encode_type) as f:
                if(self.stop==1):
                    while(1):
                        time.sleep(1)
                        if(self.kill==1):
                            break        
                        if(self.stop==0):
                            break    


                lines = f.readlines()
                for line in lines:
                    if(self.kill==1):
                        break        

                    if(self.stop==1):
                        while(1):
                            time.sleep(1)
                            if(self.kill==1):
                                break        
                            if(self.stop==0):
                                break    

                    print(line, end='')
                    self.textExample.insert(tkinter.END,str(line)+"\n")
                    self.textExample.configure(font=("Courier", self.font),height=self.h,width=self.w)
                    time.sleep(self.interval)
                    self.textExample.yview_moveto(1)

    def button3_clicked(self):  

        self.kill = 1

        fTyp = [('', '*')] 
        iDir = os.path.abspath(os.path.dirname(__file__)) 
        self.filenames = tkFileDialog.askopenfilenames(filetypes= [("Text file", ".txt")], initialdir=iDir)
        print(self.filenames)
        self.stop = 0  
        self.kill = 0
        self.textExample.delete("1.0",tkinter.END)

        thread1 = threading.Thread(target=self.thread_method)
        thread1.start()


    def button4_clicked(self):
        self.stop = 1  
    def button7_clicked(self):
        self.stop = 0  

    def button5_clicked(self):
        self.interval=self.interval + 0.1  

    def button6_clicked(self):
        if( self.interval > 0.1):
            self.interval=self.interval - 0.1  
    def button8_clicked(self):
            self.font=self.font + 1  
 
    def button9_clicked(self):
        if( self.font > 8):
            self.font=self.font - 1  


    def button10_clicked(self):
        self.w=self.w + 2  
        self.h=self.h + 1  

    def button11_clicked(self):
        self.w=self.w - 2  
        self.h=self.h - 1  


    def quit(self):
        print ("quit")  
        root.destroy()

root= tkinter.Tk()  
c=main_class(root)  
root.title("テキストスクロール")  
root.geometry("1100x600") 

loop_v = tkinter.IntVar(value=1)


px_radio_1 = tkinter.Radiobutton(
    root,
    text="繰り返し無し",
    value=1,
    variable=loop_v
)
px_radio_1.place(x=700, y=30)

px_radio_2 = tkinter.Radiobutton(
    root,
    text="繰り返しあり",
    value=2,
    variable=loop_v
)
px_radio_2.place(x=800, y=30)


root.mainloop()

github.com