본문 바로가기
카테고리 없음

Python의 'FileNotFoundError' 오류 해결법

by vibespace 2025. 3. 22.

'FileNotFoundError'란 무엇인가?

FileNotFoundError는 Python에서 파일을 열거나 작업하려고 할 때 지정된 파일이 존재하지 않거나 경로가 잘못되었을 때 발생하는 오류입니다. 이 오류는 파일 경로를 잘못 지정하거나, 실제로 파일이 존재하지 않을 때 발생합니다. 파일 입출력 작업을 수행할 때 자주 접할 수 있는 오류입니다.

'FileNotFoundError' 발생 원인

FileNotFoundError가 발생하는 주요 원인은 다음과 같습니다:

  • 파일 경로 오류: 파일 경로를 잘못 지정하거나, 경로에 오타가 있는 경우입니다. 상대 경로와 절대 경로를 혼동할 수 있습니다.
  • 파일이 존재하지 않음: 지정한 경로에 파일이 실제로 존재하지 않는 경우입니다. 파일을 삭제하거나 이동했을 수 있습니다.
  • 권한 문제: 파일에 접근할 권한이 부족한 경우, 특히 읽기 권한이 없는 경우 발생할 수 있습니다.

'FileNotFoundError' 발생 예시와 해결 방법

이제 FileNotFoundError가 발생하는 대표적인 예시와 그 해결 방법을 살펴보겠습니다.

1. 잘못된 파일 경로 지정

파일 경로를 잘못 지정했을 때 이 오류가 발생할 수 있습니다. 예를 들어, 파일 이름을 잘못 입력하거나, 상대 경로와 절대 경로를 혼동하여 발생할 수 있습니다.

오류 발생 예시

file = open("nonexistent_file.txt", "r")  # FileNotFoundError: [Errno 2] No such file or directory: 'nonexistent_file.txt'

해결 방법

파일 경로가 올바른지 다시 확인해야 합니다. 상대 경로를 사용할 경우, 스크립트가 실행되는 위치를 기준으로 경로를 설정해야 하며, 절대 경로를 사용하면 정확한 파일 위치를 지정할 수 있습니다. 예를 들어, 파일이 특정 폴더에 있다면, 해당 폴더까지 경로를 명시해야 합니다.

file = open("/home/user/documents/nonexistent_file.txt", "r")  # 해결됨

2. 파일이 실제로 존재하지 않는 경우

지정된 경로에 파일이 실제로 존재하지 않으면 이 오류가 발생합니다. 파일이 삭제되었거나 이동된 경우가 이에 해당합니다.

오류 발생 예시

file = open("missing_file.txt", "r")  # FileNotFoundError: [Errno 2] No such file or directory: 'missing_file.txt'

해결 방법

파일이 존재하는지 확인하고, 경로를 다시 확인하여 파일을 복구하거나, 올바른 경로에 파일을 배치해야 합니다. 또한, 파일이 없다면 파일을 새로 생성하거나 다른 방법으로 데이터를 처리할 수 있습니다.

import os
if os.path.exists("missing_file.txt"):
    file = open("missing_file.txt", "r")
else:
    print("파일이 존재하지 않습니다.")  # 해결됨

3. 파일 권한 문제

파일에 읽기 권한이 없으면 이 오류가 발생할 수 있습니다. 특히 시스템 파일이나 다른 사용자 소유의 파일에 접근하려고 할 때 발생할 수 있습니다.

오류 발생 예시

file = open("/restricted_file.txt", "r")  # FileNotFoundError: [Errno 13] Permission denied: '/restricted_file.txt'

해결 방법

파일 권한을 확인하고, 필요한 경우 권한을 변경하여 접근할 수 있도록 해야 합니다. 파일 권한을 변경하려면 chmod 명령어를 사용할 수 있습니다. 예를 들어, 터미널에서 다음과 같이 입력할 수 있습니다:

chmod +r /restricted_file.txt  # 해결됨

4. 상대 경로와 절대 경로의 혼동

상대 경로와 절대 경로를 혼동하여 발생할 수 있는 오류입니다. Python 스크립트를 실행하는 위치에 따라 상대 경로가 다르게 해석될 수 있습니다.

오류 발생 예시

file = open("folder/missing_file.txt", "r")  # FileNotFoundError: [Errno 2] No such file or directory: 'folder/missing_file.txt'

해결 방법

상대 경로를 사용할 때는 항상 Python 스크립트가 실행되는 위치를 기준으로 경로를 지정해야 합니다. 이를 확인하려면 os.getcwd()를 사용하여 현재 작업 디렉토리를 확인할 수 있습니다.

import os
print(os.getcwd())  # 현재 작업 디렉토리 출력

'FileNotFoundError' 예방을 위한 팁

FileNotFoundError를 예방하려면 다음과 같은 방법을 고려해야 합니다:

  • 파일 경로 확인: 파일 경로가 올바른지 항상 확인해야 합니다. 상대 경로와 절대 경로의 차이를 이해하고, 올바르게 경로를 지정합니다.
  • 파일 존재 여부 확인: 파일이 존재하는지 확인하고, 경로를 다시 점검합니다. os.path.exists()를 사용하여 파일이 존재하는지 미리 확인할 수 있습니다.
  • 권한 설정: 파일을 열 때 필요한 권한을 확인하고, 권한이 없으면 권한을 부여하여 접근할 수 있도록 합니다.
  • 파일 생성: 파일이 없다면 파일을 새로 생성하거나 다른 방법으로 데이터를 처리할 수 있도록 합니다.

결론

FileNotFoundError는 Python에서 파일을 열거나 작업하려고 할 때 발생할 수 있는 오류입니다. 이 오류는 파일 경로가 잘못되었거나, 파일이 존재하지 않거나, 파일에 대한 권한이 부족할 때 발생합니다. 이 문제를 해결하려면 파일 경로를 정확히 확인하고, 파일이 실제로 존재하는지 점검하며, 권한을 제대로 설정해야 합니다. 또한, 상대 경로와 절대 경로를 올바르게 사용하고, 파일이 존재하는지 미리 확인하는 방법을 통해 이 오류를 예방할 수 있습니다.