複数の文字列を置き換えるコード

import os
import glob
import datetime

class MainControl:
    def __init__(self):
        self.log = Log()
        self.log.setLogFilename("log.log")
        self.log.logPrintln("[START]" + datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S'))
        pass
    def main(self):
        rp = Replacer()
        rp.setLog(self.log)
        rp.addConvPair("AAA","BBB")
        rp.addConvPair("CCC","DDD")
        #rp.dumpConvPair()

        
        fl = FileList()
        fl.setLog(self.log)
        fl.setExt("*.BAS")
        fl.getFileNameList()
        #fl.dumpFileList()

        for item in fl.fnamelist:
            rp.setFile(item)
            rp.main()

        print("END")
        self.log.logPrintln("[END]" + datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S'))


class Replacer:
    def setLog(self,log):
        self.log = log

    def __init__(self):
        self.convPair=[]
        self.afterlist=[]

    def addConvPair(self,before,affter):
        self.convPair.append([before,affter])

    def dumpConvPair(self):
        for item in self.convPair:
            print(item)

    def setFile(self,FileName):
        self.FileName = FileName
        self.File = TextFile()
        self.File.filename = self.FileName

    def main(self):
        self.afterlist=[]
        self.changed = False
        self.File.read()
        for line in self.File.lines:
            beforeLine=line
            for r in self.convPair:
                #print("r0[" + r[0] + "]")
                #print("r1[" + r[1] + "]")
                line = line.replace(r[0],r[1])
                if line == beforeLine:
                    #print(line)
                    pass
                else:
                    self.changed  = True
                    self.log.logPrintln("FileName:" + self.File.filename )
                    self.log.logPrint("Before:" + beforeLine )
                    self.log.logPrint("After:" + line )
                    print(line)
                    print(beforeLine)
            self.afterlist.append(line)
        if self.changed ==True:
            self.File.lines=self.afterlist
            self.File.write()
            pass 


class FileList:
    def setLog(self,log):
        self.log = log

    def pathJoin(self,path,filename):
        return (os.path.join(path,filename))

    def getCurFileList(self,path,filename):
        return (glob.glob(self.pathJoin(os.path.dirname(path) + "/**/",filename), recursive=True))

    def setExt(self,ext):
        self.target_ext = ext

    def __init__(self):
        self.target_ext="*.*"
        self.FileList=[]

    def getFileNameList(self):
        self.fnamelist = self.getCurFileList(os.getcwd() + "/",self.target_ext)
    
    def dumpFileList(self):
        for item in self.fnamelist:
            print(item)

class TextFile:
    def setLog(self,log):
        self.log = log

    def __init__(self):
        self.filename = ""
        self.lines = []

    def clear(self):
        self.lines = []

    def count(self):
        return (len(self.lines))

    def items(self,n):
        return (self.lines[n])

    def add(self,d):
        self.lines.append(d)

    def csvRead(self,s,x):
        v=[]
        v = s.split(',')
        return v[x]

    def itemsXY(self,x,y):
        return csvRead(self,self.lines[y],x)

    def read(self):
        self.clear()
        return (self.readAppend())

    def write(self):
        if os.path.exists(self.filename) == False:
            os.makedirs(os.path.dirname(self.filename),exist_ok = True)

        f = open(self.filename,'w')
        f.writelines(self.lines)
        f.close()

    def printlines(self):
        for line in self.lines:
            print(line)

    def readAppend(self):
        if os.path.exists(self.filename) == True:
            f = open(self.filename,'r')
            self.lines = f.readlines()
            f.close()
            return (True)
        else:
            return (False)

    def writeAppend(self):
        if os.path.exists(self.filename) == False:
            os.makedirs(os.path.dirname(self.filename),exist_ok = True)
            
        f = open(self.filename,'a')
        f.writelines(self.lines)
        f.close()

    def writeAppend1Line(self,msg):
        mode = "a"
        if os.path.exists(self.filename) == False:
            os.makedirs(os.path.dirname(self.filename),exist_ok = True)
            mode = "w"
        f = open(self.filename,mode)
        f.write(msg)
        f.close()

class Log:
    def setLogFilename(self,filename):
        self.logFilename = filename

    def logPrint(self,s):
        f = open(self.logFilename,'a')
        f.write(s)
        f.close()

    def logPrintln(self,s):
        self.logPrint(s + "\n")

if __name__ == "__main__":

    mc = MainControl()
    mc.main()