🔥 파일 오류와 예외 처리
파일 처리는 Python 프로그래밍에서 중요한 부분 중 하나입니다. 파일을 읽고 쓰는 작업 중에 발생할 수 있는 오류와 예외를 처리하는 방법은 중요합니다. 이 장에서는 Python에서 파일 오류와 예외를 다루는 방법에 대해 자세히 설명하겠습니다. 각 섹션에서는 예제 코드를 통해 실제 상황에서 발생할 수 있는 문제와 그에 대한 해결책을 제시할 것입니다.
파일 오류와 예외 처리란?
파일 처리 작업 중에는 여러 가지 오류가 발생할 수 있습니다. 예를 들어 파일이 존재하지 않을 수 있거나, 파일을 읽거나 쓸 권한이 없을 수 있습니다. 이러한 상황에서 프로그램이 중단되지 않도록 예외 처리를 해야 합니다. 파일 오류와 예외 처리는 프로그램의 안정성을 높이고 사용자 경험을 향상시키는 데 도움이 됩니다.
파일 존재 여부 확인하기
파일을 열기 전에 파일이 실제로 존재하는지 확인하는 것이 중요합니다. 이를 위해 os
모듈을 사용하여 파일의 존재 여부를 확인할 수 있습니다. 다음은 파일이 존재하는지 확인하는 예제 코드입니다.
import os file_path = "my_file.txt" if os.path.exists(file_path): print(f"{file_path} 파일이 존재합니다.") else: print(f"{file_path} 파일이 존재하지 않습니다.")
python
파일 읽기 예외 처리
파일을 읽을 때 예외 처리가 필요한 경우가 있습니다. 파일이 존재하지 않거나 읽을 권한이 없는 경우, FileNotFoundError
나 PermissionError
와 같은 예외가 발생할 수 있습니다. 이러한 예외를 처리하는 방법을 살펴보겠습니다.
file_path = "my_file.txt" try: with open(file_path, "r") as file: data = file.read() print(data) except FileNotFoundError: print(f"{file_path} 파일을 찾을 수 없습니다.") except PermissionError: print(f"{file_path} 파일을 읽을 권한이 없습니다.")
python
파일 쓰기 예외 처리
파일을 쓸 때도 예외 처리가 필요합니다. 디스크 공간이 부족하거나 쓰기 권한이 없는 경우 FileNotFoundError
나 PermissionError
와 같은 예외가 발생할 수 있습니다. 이러한 상황을 처리하는 방법을 알아보겠습니다.
file_path = "my_file.txt" try: with open(file_path, "w") as file: file.write("Hello, World!") print(f"{file_path} 파일에 데이터를 쓸 수 있습니다.") except FileNotFoundError: print(f"{file_path} 파일을 찾을 수 없습니다.") except PermissionError: print(f"{file_path} 파일을 쓸 권한이 없습니다.")
python
파일 닫기와 finally
블록
파일 처리 작업 후 파일을 닫는 것이 중요합니다. 파일을 열었으면 반드시 닫아야 합니다. 그리고 finally
블록을 사용하여 예외 발생 여부와 관계없이 파일을 안전하게 닫을 수 있습니다.
file_path = "my_file.txt" try: file = open(file_path, "r") data = file.read() print(data) except FileNotFoundError: print(f"{file_path} 파일을 찾을 수 없습니다.") except PermissionError: print(f"{file_path} 파일을 읽을 권한이 없습니다.") finally: file.close()
python
컨텍스트 관리자(with
문)
파일을 열고 닫는 번거로움을 피하기 위해 컨텍스트 관리자인 with
문을 사용할 수 있습니다. with
문을 사용하면 파일을 열 때 자동으로 닫히므로 코드가 간결해집니다.
file_path = "my_file.txt" try: with open(file_path, "r") as file: data = file.read() print(data) except FileNotFoundError: print(f"{file_path} 파일을 찾을 수 없습니다.") except PermissionError: print(f"{file_path} 파일을 읽을 권한이 없습니다.")
python
연습문제
- 파일이 존재하지 않는 경우에 대한 예외 처리를 추가한 코드를 작성해보세요.
- 파일을 읽을 때 발생할 수 있는 예외를 더 자세히 처리하는 방법을 고민해보세요.