프로그래밍언어/파이썬[Error]
[파이썬][Error] 102. IsADirectoryError - [Errno 21] Is a directory
about_IT
2025. 6. 1. 00:48
728x90
IsADirectoryError: [Errno 21] Is a directory
오류는 디렉터리를 파일처럼 열려고 시도할 때 발생하는 예외입니다. 이 오류는 파일을 열거나 읽는 과정에서 지정한 경로가 실제로는 디렉터리일 경우에 발생합니다.
예를 들어 open("/some/folder/", "r")
처럼 디렉터리 경로를 파일처럼 열려고 하면 이 오류가 발생하게 됩니다.
● 오류 발생 예시
with open("./my_folder/", "r") as f:
data = f.read()
여기서 ./my_folder/
는 디렉터리이기 때문에 오류가 발생합니다.
● 주요 원인
- 디렉터리 경로를 파일 경로로 오인
- os.listdir()과 open() 사용 시 경로 구분 실수
- 자동화된 파일 처리 루틴에서 디렉터리 포함
● 해결 방법
os.path.isfile(path)
로 파일 여부 확인- 디렉터리 경로와 파일 경로를 명확히 구분
- 파일 처리 전 예외 처리 구문 추가
● 예시 코드 (예외 방지)
import os
path = "./my_folder/"
if os.path.isfile(path):
with open(path, "r") as f:
print(f.read())
else:
print("파일이 아닌 디렉터리입니다.")
● 결론
IsADirectoryError
는 파일처럼 열려고 한 대상이 실제로는 디렉터리일 때 발생합니다. 파일 작업 전 경로의 타입을 확인하거나, 예외 처리를 통해 안정적인 파일 처리가 가능하도록 해야 합니다.
728x90