본문 바로가기

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)

B로그0간

개발 관련 글과 유용한 정보를 공유하는 공간입니다.