Python에서 File을 읽을때 다음과 같은 오류가 발생하며 읽기를 중지하는 경우가 있습니다.
UnicodeDecodeError: 'cp949' codec can't decode byte 0x94 in position 2074:ilegal multibyte sequence
처음에 해당 부분이 언어셋이 cp949인 윈도우를 써서 발생하는 이슈로 생각하였습니다.
읽는 파일이 윈도우에서 생성한 IIS Log이기 때문에 python3의 경우 utf-8로 인식을 못해 발생하는 이슈로 판단하여 encode, decode, 언어셋 변경 등에 대해 확인을 하였으나 처리가 되지 않았습니다.
2074라인 이슈로 보여 해당 라인을 보니 해당 라인의 언어가 깨진 상태였습니다.
만약, 파일을 읽을 때 오류 발생 시 오류를 무시하고 넘기고 싶은 경우 다음과 같이 처리 하면 됩니다.
open("파일명", errors="ignore")
위의 명령어 수행시 오류가 발생해도 무시하고 넘어갑니다.
추가로 IIS Log를 필드별 구분하여 확인하고 싶은 경우 다음과 같이 처리하면 됩니다.
구분자 : 스페이스
line의 구분 count : 12
(처음 헤더 4줄이 12라인이 아니기 때문에 처음 헤더를 무시하지 않는 경우 split 작업을 해도 앞 뒤로 2줄 씩의 필드 밖에 읽을 수 없습니다.)