[파이썬] 파일 객체의 읽기와 쓰기 예외 처리

파이썬에서 파일을 읽거나 쓸 때 예외 처리는 중요한 부분입니다. 파일 작업 중에 예외가 발생할 수 있는 다양한 상황에 대비하여 적절한 예외 처리를 구현해야 합니다. 이렇게 하면 파일 처리 중에 발생하는 문제를 잡아내고 대응할 수 있습니다.

파일 읽기 예외 처리

파일을 읽을 때 예외 처리를 구현하는 방법을 알아보겠습니다. 대표적인 예외는 파일이 존재하지 않을 때 발생하는 FileNotFoundError입니다.

다음은 파일을 읽어서 출력하는 예시 코드입니다.

try:
    with open("file.txt", "r") as file:
        contents = file.read()
        print(contents)
except FileNotFoundError:
    print("파일이 존재하지 않습니다.")
except Exception as e:
    print("파일을 읽어오는 도중 오류가 발생했습니다:", str(e))

위 코드에서 with open("file.txt", "r") as file: 구문을 사용하여 파일을 열고, try 블록 안에서 파일을 읽어와서 변수 contents에 저장합니다. 그리고 print(contents)를 통해 파일의 내용을 출력합니다.

만약 파일이 존재하지 않을 경우, FileNotFoundError 예외가 발생하고 해당 예외에 대한 처리는 except FileNotFoundError: 블록에서 수행됩니다. 여기서는 “파일이 존재하지 않습니다.”라는 메시지를 출력하도록 하였습니다.

또한, try 블록 안에서 발생할 수 있는 모든 예외를 처리하기 위해 except Exception as e: 블록도 추가하였습니다. 이 부분에서는 발생한 예외에 대한 메시지를 출력하도록 하였습니다.

파일 쓰기 예외 처리

이번에는 파일을 쓸 때 예외 처리를 구현하는 방법을 알아보겠습니다. 파일을 쓸 때 발생할 수 있는 대표적인 예외는 PermissionError입니다.

다음은 파일에 내용을 쓰는 예시 코드입니다.

try:
    with open("file.txt", "w") as file:
        file.write("Hello, World!\n")
        file.write("This is a test.")
    print("파일에 쓰기 완료!")
except PermissionError:
    print("파일에 쓰기 권한이 없습니다.")
except Exception as e:
    print("파일을 쓰는 도중 오류가 발생했습니다:", str(e))

위 코드에서 with open("file.txt", "w") as file: 구문을 사용하여 파일을 열고, try 블록 안에서 파일에 내용을 씁니다. file.write("Hello, World!\n")file.write("This is a test.")로 두 줄의 문자열을 파일에 씁니다.

파일 쓰기가 정상적으로 이루어지면 “파일에 쓰기 완료!”라는 메시지를 출력합니다. 그러나 파일에 쓰기 권한이 없는 경우 PermissionError 예외가 발생하고, 해당 예외에 대한 처리는 except PermissionError: 블록에서 수행됩니다. 이 부분에서는 “파일에 쓰기 권한이 없습니다.”라는 메시지를 출력하도록 하였습니다.

마찬가지로, try 블록 안에서 발생할 수 있는 모든 예외를 처리하기 위해 except Exception as e: 블록도 추가하였습니다.

예외 처리의 중요성

파일 처리 중에 예외 처리를 제대로 구현하지 않으면 프로그램이 강제 종료되거나 원하지 않는 동작을 할 수 있습니다. 따라서 파일 객체의 읽기와 쓰기 예외 처리는 신중히 고려되어야 합니다.

파일이 존재하지 않거나 권한이 없는 등의 예외 상황을 대비하여 적절한 예외 처리를 구현하고, 프로그램의 안정성을 높이도록 노력해야 합니다.

이상으로 파일 객체의 읽기와 쓰기 예외 처리에 대해 알아보았습니다. 예외 처리를 적절히 구현하여 안정적인 파일 처리를 할 수 있도록 해봅시다.