os.path.normpath(path) 를 이용해서 파일 처리를 하자.
그럼 왠만한 경로는 일단 정제가 된다.
os.path.normpath(path)
중복된 구분자와 상위 수준 참조를 접어 경로명을 정규화합니다. 그래서 A//B, A/B/, A/./B 및 A/foo/../B가 모두 A/B가 됩니다. 이 문자열 조작은 심볼릭 링크가 포함된 경로의 의미를 변경할 수 있습니다. 윈도우에서는, 슬래시를 역 슬래시로 변환합니다. 대소 문자를 정규화하려면, normcase()를 사용하십시오.
버전 3.6에서 변경: 경로류 객체를 받아들입니다.
https://yeo0.github.io/pg/2018/11/21/%ED%8C%8C%EC%9D%B4%EC%8D%AC-os.path-%EB%AA%A8%EB%93%88/
path에서 . / .. 과 같은 구분자를 제거해 path를 정규화시킨다. (=원래 path의 패턴으로 만들어 준다)
import os.path
os.path.normpath('/Users//Desktop/../temp/./test.txt')
'/Users/Desktop/temp/text.txt'
- normcase(path) : path의 문자열을 정규화한다. (소문자로 바꾸고 / 형식에 맞게)
def is_pattern_in_file(pattern, file_path):
# 패턴과 파일 경로 전체를 비교
return os.path.normpath(pattern) == os.path.normpath(file_path)
'IT > 파이썬' 카테고리의 다른 글
디렉토리, 파일 목록 가져오기 - dir, ls, glob (0) | 2024.10.04 |
---|---|
문자열 표현시 r'' 의 비밀 (0) | 2024.10.04 |
@dataclass 데코레이터와 -> 연산자 소개 (0) | 2024.06.27 |
argparse - add_argument 인자 설명 (0) | 2024.06.21 |
폴더내 파일리스트를 만드는 스크립트 - 개발 유틸 (0) | 2024.06.20 |