윈도우 맥 유니코드 노말라이즈 (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)