a1_fct_vision_testlog_txt_processing >>> 컴1

목적 : 오기입된 파일명 및 내용 파악

a.파일 경로 구성

상위 경로 : C:\Users\user\Desktop\RAW_LOG\

중간 폴더 경로 : TC6, TC7, TC8, TC9, Vision03으로 리스트할 것

하위 폴더 경로 : yyyymmdd\GoodFile or BadFile > 안의 모든 파일들이 대상

result) 총 개수 산출

b. 설비 분류

TC6~9 > FCT1~4로 Convert하여 표기

Vision3 > Vision1 또는 2로 Convert하여 표기

Vision03 폴더 안의 파일은 파일 내용 6번째 줄에

‘Test Program : LED1’ 인 경우 > Vision1

‘Test Program : LED2’ 인 경우 > Vision2

result) 각 설비별 파일명 개수 dataframe 으로 집계

c.파일명 길이 확인

‘.txt’ 같은 파일 확장자 명은 제외

파일명 18번째 자리가 ‘C or 1’ 이면 총 51자리 일 것

파일명 18번째 자리가 ‘J’ 이면 총 51 or 53자리 일 것, 단 53자리 경우 47번째 자리에 ‘R’이 있을 것

파일명 18번째 자리가 ‘P or N’ 이면 총 52자리 일 것

파일명 18번째 자리가 ‘S’ 이면 총 52 or 54자리 일 것, 단 54자리 경우 48번째 자리에 ‘R’이 있을 것

(CT 산출 시에 총 53~54자리 문자열을 가진 파일명들은 따로 집계될 것 - 제품 SW Reflash한 다음 Test한 조건)

result) 위의 조건에서 벗어나는 파일명을 경로를 표기하여 dataframe으로 집계

경로는 TC6~9가 포함되어 있다면 FCT1~4로, Vision3이 포함되어 있다면 b조건에 따라 Vision1 또는 Vision2로 표기

d. yyyymmdd 비교 > 파일명 vs 폴더명

‘.txt’ 같은 파일 확장자 명은 제외

파일명 총 51번째 자리 경우 32~39자리가 yyyymmdd

파일명 총 52번째 자리 경우 33~40자리가 yyyymmdd

파일명 총 53번째 자리 경우 32~39자리가 yyyymmdd

파일명 총 54번째 자리 경우 33~40자리가 yyyymmdd

비교하여 틀린 파일명 산출

단, 폴더 yyyymmdd & yyymmdd(d+1)은 산출 제외 (현 MES 시간 Delay 있음)

result) dataframe으로 파일명 & 경로 산출

경로는 TC6~9가 포함되어 있다면 FCT1~4로, Vision3이 포함되어 있다면 b조건에 따라 Vision1 또는 Vision2로 표기

e. 엑셀 파일 생성

sheet1) b번 result

sheet2) c번 reslut & d번 result를 경로 / 파일명 / 사유로 입력될 것

—> a / b / c / d / e 단계마다 결과를 print()로 명확하게 보여주는 구조

p) jupyer note book으로 test후

정식 Python 스크립트로 생성 후 잘못된 파일명을 가진 파일이 GoodFile에 존재 경우 알람 후 stop없이 계속 실행 > json파일 변환

—> 위와 같은 Sequence로 json 파일 확인 후 파싱



a2_fct_vision_testlog_json_processing>>> 컴1

목적 : RDBMS로 올리기 위한 변환

a.파일 경로 구성

상위 경로 : C:\Users\user\Desktop\RAW_LOG\

중간 폴더 경로 : TC6, TC7, TC8, TC9, Vision03으로 리스트할 것

하위 폴더 경로 : yyyymmdd\GoodFile or BadFile > 안의 모든 파일들이 대상

b. 설비 분류

TC6~9 > FCT1~4로 Convert하여 표기

Vision3 > Vision1 또는 2로 Convert하여 표기

c. TC6~9안의 text파일들 j.son파일 변환 시 key : value 분류

  1. 파일 내용 9번째 줄, 아래 줄은 예시

    ex) ‘End Time :2025/10/01 01:46:41’

    —>End Time :yyyy/mm/dd hh:mi:ss > 로 해석

    key : value는 End day : (yyyymmdd) 와

    key : value는 End time : (hh:mi:ss), 모두 문자열로 변환

  2. 파일 내용 3번째 줄, 아래 줄은 예시

    ex) ‘Station : FCT1’

    FCT1~4까지 있음

    최종 key : value는 Station : (내용), 모두 문자열로 변환

  3. 파일 내용 5번째 줄, 아래 줄은 예시

    ex) ‘Barcode information :BA1WJ25273503681SJ8T-14F014-AE’

    최종 key : value는 Barcode information : (내용), 모두 문자열로 변환

  4. 파일 내용 13번째 줄, 아래 줄은 예시

    ex) ‘Result :PASS’

    최종 key : value는 Result : (내용), 모두 문자열로 변환

  5. 파일 내용 14번째 줄, 아래 줄은 예시

    ex) ‘Run Time :27.0’

    최종 key : value는 Run Time : (내용), 모두 문자열로 변환

  6. Vision3 폴더 안의 파일은 파일 내용 6번째 줄에

    ‘Test Program : LED1’ 인 경우 > Vision1

    ‘Test Program : LED2’ 인 경우 > Vision2

7 .Vision1~2는 3번째 줄 데이터는 무시

  1. Vision1~2의 9번째 줄 예시는

    ex) ‘End Time : 2025-10-01 04:30:55’

    —>End Time :yyyy-mm-dd hh:mi:ss > 로 해석

    key : value는 End day : (yyyymmdd) 와

    key : value는 End time : (hh:mi:ss), 모두 문자열로 변환



a3_vision_json_table_processing>>> 컴1

목적 : RDBMS로 올리기 위한 변환

목적 : Vision testlog를 테스트 항목에 맞춰 json 파일로 변환