본문 바로가기
Python/Python Programming

파이썬 파일 다루기 예외 처리: 초보자 가이드

by Maccrey 2024. 5. 27.
반응형

파이썬에서 파일을 다루는 작업은 다양한 상황에서 활용될 수 있지만, 파일 열기, 읽기, 쓰기 등의 과정에서 예외 상황이 발생할 수 있습니다.

예외 상황을 제대로 처리하지 않으면 프로그램이 중단되거나 오류 메시지가 나타나 사용자에게 불편을 줄 수 있습니다.

따라서 파이썬 파일 다루기에서 예외 처리를 적절하게 수행하는 것은 매우 중요합니다.

이 블로그 포스팅에서는 파이썬 파일 다루기 예외 처리에 대한 초보자 가이드를 자세히 다루고, 주요 개념, 예외 종류, 예외 처리 방법, 실제 코드 및 팁을 제공합니다.

 

1. 예외 처리 기본 개념

  • 예외: 프로그램 실행 중에 발생하는 오류 또는 예상치 못한 상황
  • 예외 처리: 예외 상황 발생 시 프로그램이 중단되지 않고 적절하게 대처하는 과정

2. 주요 예외 종류

  • FileNotFoundError: 파일을 찾을 수 없는 경우
  • PermissionError: 파일에 접근 권한이 없는 경우
  • IOError: 파일 입출력 관련 오류
  • ValueError: 잘못된 입력 값을 받은 경우
  • TypeError: 잘못된 데이터 타입을 사용한 경우

3. 예외 처리 방법

3.1. try-except 블록

try:
  # 예외가 발생할 가능성이 있는 코드
except Exception as e:
  # 예외 처리 코드
 
  • try: 블록은 예외가 발생할 가능성이 있는 코드를 포함합니다.
  • except Exception as e: 블록은 예외가 발생했을 때 실행됩니다.
  • e 변수에는 발생한 예외 객체가 저장됩니다.
  • 예외 처리 코드는 예외 상황에 따라 적절하게 처리하는 내용을 작성해야 합니다.

3.2. 특정 예외 처리

try:
  # 예외가 발생할 가능성이 있는 코드
except FileNotFoundError:
  # 파일을 찾을 수 없는 경우 처리 코드
except PermissionError:
  # 파일에 접근 권한이 없는 경우 처리 코드
except Exception as e:
  # 다른 예외 발생 시 처리 코드
 
  • 특정 예외 종류를 명시적으로 처리할 수 있습니다.
  • 여러 except 블록을 사용하여 다양한 예외 상황을 처리할 수 있습니다.

3.3. finally 블록

try:
  # 예외가 발생할 가능성이 있는 코드
except Exception as e:
  # 예외 처리 코드
finally:
  # 예외 상황 발생 여부와 관계없이 항상 실행되는 코드
 
  • finally 블록은 try-except 블록 이후에 실행되는 블록입니다.
  • 예외 상황 발생 여부와 관계없이 항상 실행되는 코드를 작성해야 합니다.
  • 파일 닫기 등의 후처리 작업을 finally 블록에 작성하는 것이 좋습니다.

4. 실제 코드 및 팁

4.1. 파일 열기 예외 처리

try:
  with open("data.txt", "r") as f:
    # 파일 내용 처리 코드
except FileNotFoundError:
  print("파일을 찾을 수 없습니다.")
except Exception as e:
  print(f"오류 발생: {e}")
 
  • 코드 설명
    • try: 블록에서 open("data.txt", "r") as f: 문장을 사용하여 파일을 열려고 시도합니다.
    • except FileNotFoundError: 블록은 FileNotFoundError 예외가 발생했을 때 "파일을 찾을 수 없습니다." 메시지를 출력합니다.
    • except Exception as e: 블록은 FileNotFoundError 외에 다른 예외가 발생했을 때 예외 객체 e를 출력합니다.

 

4.2. 파일 쓰기 예외 처리 (계속)

except Exception as e:
  print(f"오류 발생: {e}")
 
  • 코드 설명
    • try: 블록에서 open("output.txt", "w") as f: 문장을 사용하여 파일을 쓰기 모드로 열고, 파일 객체 f를 생성합니다.
    • f.write("파일에 쓰는 내용입니다.") 문장은 f 객체를 사용하여 파일에 "파일에 쓰는 내용입니다." 문자열을 씁니다.
    • except PermissionError: 블록은 PermissionError 예외가 발생했을 때 "파일에 쓰기 권한이 없습니다." 메시지를 출력합니다.
    • except Exception as e: 블록은 PermissionError 외에 다른 예외가 발생했을 때 예외 객체 e를 출력합니다.

4.3. 예외 메시지 활용

  • 예외 객체 e에는 예외 발생 원인에 대한 정보가 포함된 메시지가 저장됩니다.
  • e.message 속성을 사용하여 예외 메시지를 출력하거나 처리에 활용할 수 있습니다.

4.4. 로깅 활용

  • 예외 상황 발생 시 로깅 모듈을 사용하여 예외 정보를 기록하는 것이 좋습니다.
  • 로깅을 통해 예외 발생 상황을 추적하고 분석하는 데 도움이 됩니다.

4.5. 예방적 조치

  • 파일 경로를 정확하게 확인하는 것이 중요합니다.
  • 파일에 접근 권한이 있는지 확인하는 것이 중요합니다.
  • 사용자 입력 값을 유효성 검사하는 것이 중요합니다.
  • 적절한 데이터 타입을 사용하는 것이 중요합니다.

5. 마무리

파이썬 파일 다루기에서 예외 처리를 적절하게 수행하는 것은 프로그램의 안정성과 유지 관리성을 높이는 데 중요한 역할을 합니다.

이 블로그 포스팅을 통해 파이썬 초보자가 파일 다루기 예외 처리의 기본 개념, 주요 예외 종류, 예외 처리 방법, 실제 코드 및 팁을 이해하고 활용하는 데 도움이 되었기를 바랍니다.

궁금한 점이나 추가적으로 알고 싶은 내용이 있으면 언제든지 질문해주세요.

반응형