[태그:] 디코딩

  • 분석결과 파일의 인코딩 오류 해결

    우리가 접하게 되는 대부분의 분석결과 파일은 (확장자가 csv든, txt든, asc든) utf-8 아니면 euc-kr로 인코딩 되어 있을 것입니다. 물론 가끔 예외도 있습니다. 어쨌든 운영체제의 기본 인코딩 방식과 해당 파일의 인코딩 방식이 다르면 파일을 여는 첫 단계에서부터 막히게 됩니다.

    지금 우리가 하는 일은 ‘자동화’니까, 한번 넣어놓으면 인코딩이란 개념은 잊어버릴 수 있도록 하는게 제일 좋을것 같습니다.

    Python
    # 파일 인코딩 형식을 파악
    f = open("파일명", "rb")
    import chardet
    codec = chardet.detect(f.read())["encoding"]
    f.close()

    먼저 파일을 binary 형식으로 열고, 이렇게 codec이라는 변수에 코덱을 string으로 저장한 후 파일을 닫습니다.

    참고로 말씀드리면 chardet은 파이썬 기본 객체가 아닙니다. 설치한 적이 없으시다면 터미널에서 아래와 같이 설치하신 후 import하실 수 있습니다.

    PowerShell
    pip install chardet

    그리고 데이터 추출을 위해 파일을 열 때 이렇게 encoding 매개변수에 미리 파악한 코덱명이 적용되도록 합니다.

    Python
    f = open("파일명", "r", encoding = codec)