QA Engineering/Tool & Automation

Macro Editor - 1탄 -

일해라폴폴 2021. 7. 13. 18:02
반응형

서버 로그 수집을 위해서 다양한 각 시스템 별 logmask를 개발로 부터 전달 받는데,
생각보다 logmask 종류가 블럭 별로 다양할 뿐만 아니라 짧은 시간안에 매크로를 만드는게 귀찮아 1분이라도 시간을 아끼고자 제작

제작언어 : 파이썬

1. txt 형태로 전달 받은 logmask, command 를 라인별로 분리 한다
2. 분리된 라인에 특정 형태의 포맷을 감싼다
3. 라인 뒤에 새로운 라인을 추가 한다
4. tera term 매크로 포맷에 맞는 *.ttl 타입으로 저장한다
5. UI 형태로 만들어야 한다
6. 실행은 파이썬이 아닌 exe, bat 등의 방식으로 만든다

2번과 3번에서 많이 구글링을 했고, 다른 부분은 금방 구현이 가능했다
아래는 1,2,3,4번을 구성하는 파이썬 코드

def addLine():
    for i in (0,1):
 
        def scriptSavor(i):
                f = open(r'script.txt', encoding='UTF8')
                lines = f.readlines()
 
                for line in lines:
                    line = line.strip()    # print for each lines
                    addline = 'sendln \''+line+'\''+'\n'+'pause 2'+'\n'   # added 'sendln '' + pause2
                    logging.info('Log: sendln added')
 
                    print(addline)      #checked whole lines after adding
                    logging.info('Log: ... ing ...')
                f.close()
                logging.info('Log: The result print was done')
 
        sys.stdout = open('script_new.ttl''w', encoding='UTF8')    #new file create function
        for i in range(0,1):
            scriptSavor(i)
 
    logging.info('Log: completed of the *.ttl file')
    tkinter.messagebox.showinfo('Create Result''Success :D \n')
 
cs

 

encoding 타입을 따로 지정 하고 싶지 않았는데, 계속 에러가 발생 해서 어쩔수 없이 UTF-8 로 지정함
※ binary 타입으로 작성되는 경우가 있어서 결국 구상 하고 있는 개선 방향을 구현하지 못함 (이건 ver 2.0에서 해야 할듯...)

addline 함수로 각 포맷과 나누어 놓은 라인 뒤에 추가 문구들을 저장 하고 for 문 내에서 처리하려고 했는데 어찌어찌 했지만 아직도 'for i in range(0,1):' 로 했는지는... 난 이해가 아직 안됨 ㅠㅠ

반응형