Python에서 열린 파일 예외 처리

Fariba Laiq 2023년6월21일
  1. 파이썬 open() 파일 함수
  2. Python 파일 열기 예외
  3. Python에서 파일을 읽을 때 try-except를 사용하여 예외 처리
Python에서 열린 파일 예외 처리

파일을 열기 위해 Python에는 사용자가 파일을 읽거나 쓸 수 있는 open()이라는 내장 함수가 있지만 어떤 상황에서든 파일이 없거나 컴파일러에서 액세스할 수 없는 경우 , FileNotFoundError가 발생합니다. 이 기사에서는 Python의 파일 예외를 처리하는 방법을 살펴봅니다.

파이썬 open() 파일 함수

이 함수는 파일을 열고 모든 콘텐츠를 로드한 다음 파일 객체로 반환합니다.

일반 구문:

open(filename, mode="r")

이 함수는 두 개의 인수를 사용합니다. 하나는 파일 이름 또는 전체 파일 경로입니다. 다른 하나는 파일에서 수행해야 하는 작업을 결정하는 액세스 모드입니다.

r(읽기 전용), w(쓰기 전용), a(추가 전용), rb(이진 형식의 읽기 전용) 등 다양한 모드가 있습니다.

Python 파일 열기 예외

존재하지 않는 파일을 열려고 하거나 실수로 잘못된 파일 경로를 입력하여 FileNotFound 예외가 발생했다고 가정합니다.

예제 코드:

file1 = open("myfile.txt", "r")
# Reading from file
print(file1.read())
file1.close()

출력:

FileNotFoundError                         Traceback (most recent call last)
C:\Users\LAIQSH~1\AppData\Local\Temp/ipykernel_4504/3544944463.py in <module>
----> 1 file1 = open("myfile.txt",'r')
      2
      3 # Reading from file
      4 print(file1.read())
      5

FileNotFoundError: [Errno 2] No such file or directory: 'myfile.txt'

열려야 할 파일이 컴파일러에 의해 누락된 것을 발견했기 때문에 open 함수가 No such file or directory라는 오류를 표시하는 것을 볼 수 있습니다.

Python에서 파일을 읽을 때 try-except를 사용하여 예외 처리

이 누락된 파일 문제에 대한 가장 좋은 해결책 중 하나는 코드가 모호하고 일부 오류가 포함되어 있다는 것입니다. 코드의 해당 부분을 try 블록으로 래핑합니다.

try 블록이 먼저 실행됩니다. 파일을 찾을 수 없으면 예외가 발생합니다.

try 블록의 나머지 코드는 건너뛰고 컨트롤은 except 블록으로 이동합니다. 제외 블록에서 발생한 오류 유형을 언급합니다.

예외는 except 블록에서 처리됩니다. try 블록에 예외가 없으면 except 절이 실행되지 않습니다.

다음 예를 고려하십시오.

try:
    file1 = open("myfile.txt", "r")
    # Reading from file
    print(file1.read())
    file1.close()
except FileNotFoundError:
    print("FileNotFoundError successfully handled")

출력:

FileNotFoundError successfully handled

try 블록에 오류가 있었기 때문에 except 블록의 명령문이 출력에 인쇄되었습니다. 따라서 이 트릭을 사용하면 오류 메시지가 표시되더라도 출력에 메시지를 표시하여 코드의 예외를 처리할 수 있습니다.

작가: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

관련 문장 - Python Exception