관리 메뉴

솜씨좋은장씨

[Python] Mac 에서 한글로 된 파일 경로 문제없이 사용하는 방법 본문

Programming/Python

[Python] Mac 에서 한글로 된 파일 경로 문제없이 사용하는 방법

솜씨좋은장씨 2020. 12. 15. 20:58
728x90
반응형

이 글에서는 Mac OS 가 설치된 맥북, 아이맥, 맥 등에서 파이썬을 활용하여 코딩을 할 때

영어나 숫자로 되어있는 이름의 파일은 문제가 없는데

윈도우에서 가져온 파일 중에 한글로 된 파일을 가져와서 데이터를 로드하여 사용하려하면

오류가 나지는 않는데 제대로 파일에 접근하여 다른 작업을 하지 못할때 해결하는 방법에 대해서 적어보려합니다.

 

원인

먼저 이렇게 한글로 된 파일은 맥과 윈도우에서 한글을 표현할 때 사용하는 방식이 다르기 때문입니다.

맥에서 만든 파일을 윈도우로 가져갔을 때 파일이름의 자모가 분리되어 보이는 문제도 같은 이유로 발생합니다.

 

맥은 NFD ( Normalization Form Decomposition ) 방법을

윈도우는 NFC ( Normalization Form Composition ) 방법을 사용합니다.

 

각 용어에 대한 내용은 아래 블로그에 잘 정리되어있으니 궁금하신 분들은 참고하시기 바랍니다.

 

NoonGam's IT 블로그

네트워크, 프로그래밍, IT 관련 배우고자 하는 블로그입니다.

wodonggun.github.io

 

해결 방법

해결 방법은 간단합니다.

서로 다른 인코딩 방식을 하나로 통일해주면 됩니다.

from unicodedata import normalize
import os

file_path = "./파일경로/"
nfd_file_list = os.listdir(file_path)

nfd_file_list = []

for nfd_file in nfd_file_list:
    nfc_file = normalize("NFC", nfd_file)
    nfc_file_list.append(nfc_file)

위의 예시는 NFD 방식의 한글로 되어있는 파일 목록을 os.listdir을 활용하여 가져온 후에

normalize를 활용하여 NFC 방식으로 바꾼 다음 NFC 방식의 파일이름 리스트를 만든 예시입니다.

 

여기서 가장 중요한 부분은

from unicodedata import normalize

nfc_name = normalize('NFC', nfd_name)

위의 부분입니다. 

 

이를 가지고 본인 작업에 맞게 활용하면 됩니다.

 

읽어주셔서 감사합니다.

Comments