Python에서 특정 경로가 디렉토리(폴더)인지 아니면 일반 파일인지 확인하려면 표준 라이브러리의 os.path 모듈을 사용하면 됩니다. 가장 기본적인 방법은 os.path.isfile() 메서드입니다.
os.path.isfile()로 일반 파일 확인하기
os.path.isfile()은 지정한 경로가 실제로 존재하고 일반 파일일 경우 True를 반환하며, 경로가 디렉토리이거나 존재하지 않으면 False를 반환합니다.
예제
>>> import os
>>> print(os.path.isfile('my_file.txt'))
True
>>> print(os.path.isfile('my_folder'))
False
os.path.isdir()로 디렉토리 확인하기
반대로 경로가 디렉토리인지 확인하려면 os.path.isdir()을 사용합니다.
>>> import os
>>> print(os.path.isdir('my_folder'))
True
>>> print(os.path.isdir('my_file.txt'))
False
pathlib 모듈 활용 (Python 3 권장)
Python 3에서는 객체 지향적인 인터페이스를 제공하는 pathlib 모듈을 사용하는 것이 더 깔끔하고 가독성이 좋습니다.
>>> from pathlib import Path
>>> Path('my_file.txt').is_file()
True
>>> Path('my_folder').is_dir()
True
참고 사항
isfile()과isdir()은 경로가 존재하지 않아도 예외를 발생시키지 않고False를 반환합니다. 단순히 존재 여부만 확인하려면os.path.exists()를 사용하세요.- 경로가 심볼릭 링크인 경우, 링크가 가리키는 실제 대상을 기준으로 판별됩니다.
- 파일을 열기 전에 미리 타입을 검사하는 것보다, 필요한 작업을 시도한 후
try/except로 예외를 처리하는 것이 더 안전한 패턴으로 권장됩니다(TOCTOU 문제 방지).