본문 바로가기
프로그래밍언어/파이썬[Error]

[파이썬][Error] 066. FileNotFoundError - mismatched relative vs absolute path

by about_IT 2025. 5. 29.
728x90

FileNotFoundError: mismatched relative vs absolute path 오류는 파일 경로를 지정할 때 상대 경로와 절대 경로를 혼동하거나 잘못된 기준으로 경로를 지정하여 파일을 찾지 못할 때 발생합니다. 실제로 존재하는 파일이더라도 경로 기준이 잘못되면 파이썬은 파일을 찾을 수 없습니다.

예를 들어 현재 작업 디렉토리가 /project/src인데, open("../data/file.txt")처럼 상대 경로를 잘못 지정하면 파일이 존재하지 않는 것으로 인식됩니다.

● 오류 발생 예시

# 현재 디렉토리: /project/src
open("data/file.txt")  # 실제 파일 위치는 /project/data/file.txt

작업 디렉토리가 아닌 위치를 기준으로 경로를 지정하면 FileNotFoundError가 발생합니다.

● 해결 방법

  • os.getcwd() 또는 Path.cwd()로 현재 작업 디렉토리 확인
  • 상대 경로 대신 절대 경로를 사용
  • 스크립트 기준 경로: __file__Path(__file__).resolve().parent 활용

● 예시 코드 (절대 경로 활용)

from pathlib import Path
base_path = Path(__file__).resolve().parent.parent
file_path = base_path / "data" / "file.txt"
with open(file_path, "r") as f:
    data = f.read()

● 자주 하는 실수

  • IDE와 터미널에서 실행 디렉토리가 다른 경우
  • 상대 경로 기준이 다른 여러 모듈을 혼합 사용
  • Jupyter Notebook에서 작업 경로가 셀 기준임을 간과

● 결론

FileNotFoundError - mismatched relative vs absolute path 오류는 올바른 경로를 지정하지 않아 발생합니다. 경로 기준을 명확히 인식하고, 프로젝트 구조에 따라 적절한 방식(절대/상대)을 선택하는 것이 중요합니다.

728x90