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

[파이썬][Error] 067. OSError - [Errno 22] Invalid argument on Windows path

by about_IT 2025. 5. 29.
728x90

OSError: [Errno 22] Invalid argument 오류는 잘못된 인자(특히 경로)를 사용하여 파일을 열거나 조작하려고 할 때 발생합니다. Windows 시스템에서 파일 경로에 허용되지 않는 문자가 포함되어 있거나, 경로 형식이 잘못되었을 때 주로 발생합니다.

예를 들어 파일 이름에 :, *, ?, <, >, |, \ 등의 문자가 포함되면 Windows에서는 해당 경로가 유효하지 않기 때문에 오류가 발생합니다. 또한 파일 경로가 너무 길거나, open() 함수의 인자에 None, 빈 문자열 등이 전달되었을 때도 같은 오류가 발생할 수 있습니다.

● 오류 발생 예시

open("invalid:file.txt", "w")

Windows에서는 콜론(:)이 포함된 파일 이름을 사용할 수 없기 때문에 오류가 발생합니다.

OSError: [Errno 22] Invalid argument: 'invalid:file.txt'

● 해결 방법

  • 경로에 사용 불가능한 문자가 포함되어 있는지 확인
  • 파일 이름에 : * ? " < > | 등의 문자 제거
  • os.path 또는 pathlib.Path로 경로 유효성 검사

● 예시 코드

from pathlib import Path
safe_name = "report_2024.txt"
path = Path("C:/Users/user/Desktop") / safe_name
with open(path, "w") as f:
    f.write("파일 생성 완료")

● 자주 하는 실수

  • 날짜/시간 문자열을 파일 이름에 그대로 사용 (예: 2024:05:25)
  • 플랫폼에 따라 경로 호환성을 고려하지 않음
  • 파일 경로를 문자열로 하드코딩하면서 실수

● 결론

OSError - [Errno 22] Invalid argument 오류는 경로 또는 인자가 잘못되었을 때 발생합니다. 특히 Windows 환경에서는 파일 이름 규칙과 경로 제한을 고려하여 안전한 경로 조합을 사용하는 것이 중요합니다.

728x90