윈도우 맥 유니코드 노말라이즈 (Windows mac Unicode Normalize): NFC, NFD¶
상황¶
맥 파일 이름 글자가 분리됨
ㅌㅔㅅㅡㅌ.txt
분석¶
- NFC: 완성형
 - NFD: 조합형
 
대응¶
조합형(NFD) 노말라이즈된 텍스트인지 확인
unicodedata.is_normalized('NFD', file_name)
완성형(NFC) 노말라이즈 진행
unicodedata.normalize('NFC', file_name)
특정 폴더 하위 파일 전체 노말라이즈
import os
import unicodedata
def normalize_file_names(root_path):
    for base_path, dir_names, file_names in os.walk(root_path):
        for old_file_name in file_names:
            if unicodedata.is_normalized('NFD', old_file_name):
                new_file_name = unicodedata.normalize('NFC', file_name)
                old_file_path = os.path.join(base_path, file_name) 
                print(f"NFD:{old_file_path} -> NFC: {new_file_name}")
                new_file_path = os.path.join(base_path, new_file_name) 
                os.rename(old_file_path, new_file_path)