기초

파이썬 기초 06강 — 모듈·예외처리·파일 입출력

🎯 학습 목표

  • import로 표준 모듈을 가져와 쓴다.
  • try/except로 예외를 처리한다.
  • with 문으로 파일을 안전하게 읽고 쓴다.

📖 모듈 — 남이 만든 기능 가져다 쓰기

모듈(module)은 함수·변수를 모아놓은 파이썬 파일입니다. 파이썬에는 별도 설치 없이 바로 쓰는 표준 라이브러리가 풍부합니다. import로 불러옵니다.

import math
print(math.sqrt(16))     # 4.0  제곱근
print(math.pi)           # 3.141592...

import random
print(random.randint(1, 6))      # 1~6 주사위
print(random.choice(["가","나","다"]))   # 무작위 하나

from datetime import datetime    # 모듈에서 일부만 가져오기
print(datetime.now())            # 현재 시각

외부 라이브러리는 pip install 패키지명으로 설치 후 같은 방식으로 import합니다.

📖 예외 처리 — 에러로 멈추지 않게

실행 중 문제가 생기면 파이썬은 예외(Exception)를 발생시키고 프로그램을 멈춥니다. 예상되는 문제는 try/except로 잡아 프로그램이 죽지 않게 처리합니다.

try:
    age = int(input("나이: "))   # 숫자가 아니면 ValueError
    print(100 / age)            # 0이면 ZeroDivisionError
except ValueError:
    print("숫자를 입력하세요.")
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
except Exception as e:
    print("알 수 없는 오류:", e)  # 그 외 모든 예외
else:
    print("정상 처리 완료")        # 예외가 없을 때만 실행
finally:
    print("끝 (항상 실행)")        # 예외 여부와 무관하게 항상

💻 파일 쓰기와 읽기 — with

# 쓰기 ('w'=새로쓰기, 'a'=이어쓰기). encoding은 한글 위해 utf-8 권장
with open("memo.txt", "w", encoding="utf-8") as f:
    f.write("첫 줄n")
    f.write("둘째 줄n")
# with 블록을 벗어나면 파일이 자동으로 닫힘 (close 불필요)

# 읽기 ('r')
with open("memo.txt", "r", encoding="utf-8") as f:
    content = f.read()        # 전체를 한 문자열로
print(content)

# 한 줄씩 읽기
with open("memo.txt", "r", encoding="utf-8") as f:
    for line in f:
        print(line.strip())   # 줄 끝 개행 제거

📖 왜 with를 쓰나?

파일은 열면 반드시 닫아야 합니다. with 문을 쓰면 블록이 끝날 때(에러가 나도) 파일을 자동으로 닫아줘 안전합니다. 직접 open/close를 관리하다 닫기를 빠뜨리는 실수를 막아줍니다.

⚠️ 주의사항

  • open(..., "w")는 기존 파일 내용을 전부 지우고 새로 씁니다. 이어 붙이려면 "a"(append) 모드를 쓰세요.
  • 한글이 깨지면 encoding="utf-8"을 지정했는지 확인하세요(특히 윈도우).
  • except:로 모든 예외를 뭉뚱그려 잡으면 진짜 버그를 숨길 수 있습니다. 가능하면 구체적인 예외 종류를 지정하세요.

💡 팁

  • 표준 라이브러리만으로도 날짜·수학·랜덤·JSON·파일 처리 등 많은 일을 할 수 있습니다. 새 기능이 필요하면 “파이썬 표준 라이브러리”부터 찾아보세요.
  • JSON 데이터는 import jsonjson.load/json.dump로 딕셔너리와 쉽게 변환됩니다(3강의 dict와 연결).