개요

  • 목적: 파이썬에서 파일을 읽고 쓰는 방법을 이해하고, 다양한 모드와 활용법을 익힌다.
  • 범위:open() 함수, 파일 모드(r, w, a), read, readline, readlines, with문, CSV 파일 처리.

🎯 목표 (Milestones)

  • M1: 파일 열기/쓰기/읽기 이해
  • M2: 인코딩과 줄바꿈 처리 이해
  • M3: CSV 파일 다루기 및 디버깅 기법 이해

아키텍처 & 구성

  • 구성: 이론 + 예제 코드 + 실습 문제

작업 목록 (Tasks)

파일 열기와 모드

이론

  • 파일은 open(파일명, 모드)로 연다.
  • 주요 모드
    • r : 읽기 (read)
    • w : 쓰기 (write, 기존 내용 삭제됨)
    • a : 추가 (append, 기존 내용 뒤에 이어쓰기)
f = open("a.txt", "w")  # 쓰기 모드로 파일 생성
f.write("Hello World")
f.close()

파일 쓰기

이론

  • 파일객체.write(내용)으로 텍스트 기록
  • 기존 파일에 덮어쓰기 → 원본 내용이 모두 사라짐
f = open("test.txt", "w")
f.write("첫 번째 줄\n")
f.write("두 번째 줄\n")
f.close()

파일 읽기

read()

  • 전체 내용을 문자열로 읽음
f = open("test.txt", "r", encoding="utf-8")
data = f.read()
print(data)
f.close()

readline()

  • 한 줄씩 읽음, 개행문자 \n 포함됨
f = open("test.txt", "r", encoding="utf-8")
line = f.readline()
print(line.strip())  # strip()으로 개행 제거
f.close()

readlines()

  • 파일 내용을 리스트 형태로 읽음
f = open("test.txt", "r", encoding="utf-8")
lines = f.readlines()
for l in lines:
    print(l.strip())
f.close()

인코딩

이론

  • 컴퓨터는 문자를 직접 인식하지 못하므로 → 숫자 코드와 매핑
  • 인코딩(Encoding): 문자 → 코드
  • 디코딩(Decoding): 코드 → 문자

주요 방식

  • UTF-8 : 전 세계 문자 표현 가능, 한글 1자 = 3byte
  • EUC-KR : 한글/한국 한자/영문 가능, 한글 1자 = 2byte

추가 모드 (a)

f = open("test.txt", "a")
f.write("추가된 줄\n")
f.close()

기존 내용 뒤에 이어서 기록

with문

이론

  • with문 사용 시 파일을 자동으로 close() 처리
  • 코드가 간결해지고 안전함
with open("test.txt", "r", encoding="utf-8") as f:
    data = f.read()
    print(data)

CSV 파일 다루기

이론

  • CSV(Comma-Separated Values): 데이터가 , 로 구분된 텍스트 형식
  • 엑셀/메모장/데이터 분석에서 많이 활용
import csv

with open("data.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.writer(f)
    writer.writerow(["이름", "나이", "국가"])
    writer.writerow(["철수", 25, "한국"])
    writer.writerow(["John", 30, "USA"])

디버깅 팁

  • breakpoint (중단점): 코드 실행 중 특정 지점에서 멈춤 (Ctrl + F8)
  • Step Over: 한 줄씩 실행 (F10)
  • 파일 읽기/쓰기 동작을 디버그하며 확인 가능

관련 리소스

  • 강사님 자료

느낀점& 배운점&나아가야할점

  • 느낀점: 파일 입출력은 데이터를 다루는 그런거구나 라고 싶음
  • 배운점: open, with, read, write의 차이와, CSV 파일의 구조를 배움
  • 나아가야할점: 안 공부에도 로그 파일이나 데이터 수집이 중요한 만큼, 파일 다루기 연습을 더 해야겠다.
profile
nyo님 좋아합니다!

0개의 댓글