Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- PYTHON
- Baekjoon
- Real or Not? NLP with Disaster Tweets
- hackerrank
- Docker
- leetcode
- 백준
- 자연어처리
- ChatGPT
- 데이콘
- 더현대서울 맛집
- 코로나19
- 편스토랑
- Git
- SW Expert Academy
- 금융문자분석경진대회
- Kaggle
- 프로그래머스 파이썬
- 캐치카페
- AI 경진대회
- dacon
- 우분투
- programmers
- 파이썬
- ubuntu
- 맥북
- github
- 프로그래머스
- 편스토랑 우승상품
- gs25
Archives
- Today
- Total
솜씨좋은장씨
[Python] Mac 에서 한글로 된 파일 경로 문제없이 사용하는 방법 본문
728x90
반응형
이 글에서는 Mac OS 가 설치된 맥북, 아이맥, 맥 등에서 파이썬을 활용하여 코딩을 할 때
영어나 숫자로 되어있는 이름의 파일은 문제가 없는데
윈도우에서 가져온 파일 중에 한글로 된 파일을 가져와서 데이터를 로드하여 사용하려하면
오류가 나지는 않는데 제대로 파일에 접근하여 다른 작업을 하지 못할때 해결하는 방법에 대해서 적어보려합니다.
원인
먼저 이렇게 한글로 된 파일은 맥과 윈도우에서 한글을 표현할 때 사용하는 방식이 다르기 때문입니다.
맥에서 만든 파일을 윈도우로 가져갔을 때 파일이름의 자모가 분리되어 보이는 문제도 같은 이유로 발생합니다.
맥은 NFD ( Normalization Form Decomposition ) 방법을
윈도우는 NFC ( Normalization Form Composition ) 방법을 사용합니다.
각 용어에 대한 내용은 아래 블로그에 잘 정리되어있으니 궁금하신 분들은 참고하시기 바랍니다.
해결 방법
해결 방법은 간단합니다.
서로 다른 인코딩 방식을 하나로 통일해주면 됩니다.
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)
위의 부분입니다.
이를 가지고 본인 작업에 맞게 활용하면 됩니다.
읽어주셔서 감사합니다.
'Programming > Python' 카테고리의 다른 글
[Python] pdf 파일을 이미지로 변환하는 여러가지 방법 ( feat. pdf2image, tifffile, wand, ImageMagick ) (0) | 2020.12.19 |
---|---|
[Python] logging 중복 로그 해결하는 방법 (0) | 2020.12.17 |
[Python] datetime을 활용하여 코드 소요시간 측정하기 (0) | 2020.12.06 |
[Python] pdf2image 라이브러리를 활용하여 pdf파일 이미지로 변환하는 방법 (0) | 2020.12.01 |
[Python] PDFInfoNotInstalledError: Unable to get page count. Is poppler installed and in PATH? 해결방법 (0) | 2020.12.01 |
Comments