본문 바로가기
BIG DATA/PYTHON

[PYTHON] 파이썬 기초: 파일 입출력과 예외 처리 완벽 정리

by 라일리T 2025. 2. 21.

파이썬 기초: 파일 입출력과 예외 처리 완벽 정리

프로그램에서 **파일 입출력(File I/O)**은 데이터를 파일에 저장하거나 파일에서 읽어오는 작업을 의미합니다. 또한 **예외 처리(Exception Handling)**는 프로그램에서 발생할 수 있는 오류를 처리하는 방법입니다. 이번 글에서는 파이썬의 파일 입출력과 예외 처리에 대해 배워보겠습니다.


1. 파일 입출력 (File I/O)

파이썬에서는 파일을 읽고 쓰는 작업을 **파일 객체(file object)**를 사용하여 처리합니다.

1.1 파일 열기 (open())

파일을 사용하려면 먼저 파일을 열어야 합니다. open() 함수는 파일을 열 때 사용됩니다.

file = open("example.txt", "r")  # 읽기 모드

모드 설명:

  • 'r': 읽기 모드 (파일이 존재해야 함)
  • 'w': 쓰기 모드 (파일이 없으면 새로 생성됨, 기존 파일은 덮어씀)
  • 'a': 추가 모드 (파일 끝에 추가)
  • 'b': 이진 모드 (바이너리 파일을 처리할 때 사용)

1.2 파일 읽기

파일을 열고 나면, 파일 내용 읽기가 가능합니다.

예제 1: 전체 내용 읽기

file = open("example.txt", "r")
content = file.read()
print(content)
file.close()

예제 2: 한 줄씩 읽기

file = open("example.txt", "r")
for line in file:
    print(line.strip())  # 줄 끝의 개행 문자 제거
file.close()

1.3 파일 쓰기

파일에 데이터를 쓸 때는 write() 또는 writelines()를 사용합니다.

file = open("example.txt", "w")
file.write("Hello, World!")
file.close()

writelines()는 여러 줄을 한 번에 쓸 수 있습니다.

lines = ["첫 번째 줄\n", "두 번째 줄\n", "세 번째 줄\n"]
file = open("example.txt", "w")
file.writelines(lines)
file.close()

1.4 파일 닫기

파일을 다 사용한 후에는 close()를 호출하여 파일을 닫아야 합니다. 이는 리소스를 해제하고 파일의 변경 내용을 저장하는 데 필요합니다.


2. 예외 처리 (Exception Handling)

프로그램 실행 중에 예상치 못한 오류가 발생할 수 있습니다. 이를 처리하기 위해 예외 처리를 사용합니다.

2.1 기본 문법

파이썬에서는 try와 except를 사용하여 예외를 처리합니다.

try:
    # 오류가 발생할 가능성이 있는 코드
    result = 10 / 0
except ZeroDivisionError:
    # 오류가 발생했을 때 실행할 코드
    print("0으로 나눌 수 없습니다!")

2.2 여러 개의 예외 처리

여러 개의 예외를 처리하려면 except를 여러 번 사용하거나, (예외1, 예외2) 형태로 여러 예외를 처리할 수 있습니다.

try:
    number = int(input("숫자를 입력하세요: "))
    result = 10 / number
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다!")
except ValueError:
    print("유효한 숫자를 입력해주세요!")
except Exception as e:
    print(f"알 수 없는 오류 발생: {e}")

2.3 else와 finally

  • else: 예외가 발생하지 않으면 실행됩니다.
  • finally: 예외 발생 여부와 관계없이 항상 실행됩니다. 주로 리소스 해제에 사용됩니다.
try:
    result = 10 / 2
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다!")
else:
    print("예외가 발생하지 않았습니다. 결과:", result)
finally:
    print("이 구문은 항상 실행됩니다.")

3. 파일 입출력과 예외 처리 함께 사용하기

파일을 처리할 때 예외 처리를 사용하면 프로그램의 안정성을 높일 수 있습니다. 예를 들어, 파일을 읽거나 쓸 때 파일이 존재하지 않거나 권한 문제가 발생할 수 있습니다.

예제 1: 파일 읽기 예외 처리

try:
    file = open("nonexistent_file.txt", "r")
    content = file.read()
    print(content)
except FileNotFoundError:
    print("파일을 찾을 수 없습니다!")
finally:
    print("파일 처리 완료")

예제 2: 파일 쓰기 예외 처리

try:
    file = open("example.txt", "w")
    file.write("새로운 내용")
except IOError:
    print("파일을 쓸 수 없습니다!")
finally:
    file.close()

4. with 구문을 이용한 파일 처리

with 구문을 사용하면 파일을 자동으로 열고 닫을 수 있습니다. 이는 파일을 안전하게 처리하는 데 매우 유용합니다.

with open("example.txt", "r") as file:
    content = file.read()
    print(content)

with 구문을 사용하면 파일을 명시적으로 닫을 필요가 없습니다. 파일을 다 사용한 후, 자동으로 닫힙니다.


5. 결론

이번 글에서는 파일 입출력과 예외 처리에 대해 배웠습니다.

파일 입출력: 파일을 열고, 읽고, 쓰고, 닫는 작업
예외 처리: 오류를 처리하여 프로그램의 안정성 증가
✅ with 구문을 활용한 파일 관리
다양한 예외 처리를 통해 예기치 못한 오류에 대응

다음 글에서는 파이썬의 클래스와 객체 지향 프로그래밍(OOP)에 대해 알아보겠습니다! 🚀