이미지
Day 17 예외 처리: 에러가 나도 당황하지 않는 법 프로그램의 멈춤을 방지하는 든든한 보호막, try-except 안녕하세요! 16일차에서 파일을 읽어오는 법을 배웠죠? 그런데 만약 읽으려는 파일이 없다면 어떻게 될까요? 파이썬은 즉시 빨간색 에러 메시지를 띄우며 작동을 멈춰버립니다. 하지만 예외 처리 를 배우면 에러 상황을 우아하게 넘길 수 있습니다. 1. try-except: "일단 해보고, 안되면 대처해!" 가장 기본적인 안전장치 구조입니다. try 블록에는 원래 하려던 코드를, except 에는 에러가 났을 때 할 행동을 적습니다. 실행 (try) ➡️ 에러 발생 시 대처 (except) ➡️ 계속 실행 try: num = int(input("숫자를 입력하세요: ")) print(f"입력하신 숫자는 {num}입니다.") except ValueError: print("⚠️ 오류: 숫자가 아닌 글자가 입력되었습니다!") print("프로그램이 종료되지 않고 계속 실행됩니다.") 2. 에러의 종류에 따라 다르게 대처하기 파이썬에는 다양한 에러(Exception)가 있습니다. 어떤 에러가 났느냐에 따라 다른 안내 메시지를 줄 수 있습니다. try: a = [10, 20, 30] index = int(input("인덱스 번호를 입력하세요: ")) print(a[index] / 0) # 인덱스 에러와 0으로 나누기 에러 가능성! except IndexError: print("목록...

파일 읽고 쓰기: 데이터를 영구적으로 보관하기

Day 16

파일 읽고 쓰기: 데이터를 영구적으로 보관하기

프로그램을 꺼도 데이터는 살아있다! 텍스트 파일 다루기

안녕하세요! 어제까지는 프로그램이 실행되는 동안에만 존재하는 데이터를 다뤘습니다. 하지만 우리가 게임 점수를 저장하거나 일기장을 만들려면, 프로그램이 종료되어도 사라지지 않는 '파일'의 형태로 저장해야 합니다.

1. 어떤 목적으로 파일을 열 건가요?

파이썬에서 파일을 열 때는 '목적'을 미리 말해줘야 합니다. 이것을 모드(Mode)라고 부릅니다.

'w'
쓰기(Write)
새로 만들기
(덮어쓰기)
'a'
추가(Append)
기존 내용 뒤에
덧붙이기
'r'
읽기(Read)
내용물
불러오기

2. 안전하게 쓰고 닫기: with open

파일을 열었으면 반드시 close()로 닫아줘야 합니다. 하지만 파이썬 중급자라면 with 문을 사용해 자동으로 파일을 닫는 우아한 방식을 사용합니다.

# 1. 파일 만들기 (w 모드)
with open("memo.txt", "w", encoding="utf-8") as f:
    f.write("안녕하세요, 파이썬 파일 쓰기 실습입니다.\n")
    f.write("오늘 날씨는 정말 좋네요!")

# 2. 내용 추가하기 (a 모드)
with open("memo.txt", "a", encoding="utf-8") as f:
    f.write("\n이건 추가된 내용입니다.")

3. 저장된 내용 불러오기

파일 전체를 한 번에 읽거나, 한 줄씩 읽어올 수 있습니다.

# 파일 읽기 (r 모드)
with open("memo.txt", "r", encoding="utf-8") as f:
    data = f.read() # 전체 읽기
    print(data)

# 한 줄씩 리스트로 읽기
with open("memo.txt", "r", encoding="utf-8") as f:
    lines = f.readlines()
    for line in lines:
        print(line.strip()) # strip()으로 줄바꿈(\n) 제거
💡 encoding="utf-8"이 왜 필요한가요?
한글이 포함된 파일을 다룰 때, 이 설정을 하지 않으면 글자가 깨지는 현상(외계어)이 발생할 수 있습니다. 한글 사용자라면 필수 옵션입니다!

💡 파일 입출력 Q&A

Q1. with 문을 안 쓰면 어떻게 되나요?

A. f.close()를 직접 적어줘야 합니다. 만약 깜빡하고 닫지 않으면 다른 프로그램에서 그 파일을 수정하지 못하거나 데이터가 유실될 위험이 있습니다.

Q2. 'w' 모드로 열면 기존 내용이 다 사라지나요?

A. 네, 조심해야 합니다! 'w' 모드는 기존 파일을 완전히 지우고 새로 작성합니다. 기존 내용을 보존하면서 뒤에 추가하고 싶다면 반드시 'a' 모드를 쓰세요.

Q3. 파일이 없는 상태에서 'r' 모드를 실행하면요?

A. FileNotFoundError가 발생합니다. 읽기 전에는 파일이 실제로 존재하는지 확인하거나, 에러 처리를 해주는 것이 좋습니다.

Q4. 이미지나 음악 파일도 이렇게 읽을 수 있나요?

A. 텍스트가 아닌 파일은 바이너리(Binary) 모드인 'rb', 'wb' 등을 사용해야 합니다. 이건 나중에 더 깊게 다뤄볼게요!

오늘의 미션 🚩

"나만의 방명록 만들기"
1. 사용자로부터 '이름'과 '한 줄 평'을 입력받으세요.
2. guestbook.txt 파일에 추가(a) 모드로 저장하세요.
3. 저장된 파일의 내용을 읽어와서 화면에 출력해 보세요!

데이터를 영구 저장하는 법을 배우셨으니 이제 진짜 '도구'를 만드실 수 있습니다!
내일은 프로그램의 예상치 못한 멈춤을 방지하는 17일차: 예외 처리(try-except)로 찾아올게요. 💜

댓글

이 블로그의 인기 게시물

초보 파이썬 따라하기: 7가지 실전 프로젝트로 매일 코딩 습관 만들기

조건문(if, elif, else) 배우기

초보자를 위한 Step-by-Step: 리스트와 인덱싱으로 값을 추가/삭제해 Python 기초 잡기