학습 자료 글/파이썬 시작하기

[파이썬 기초 시리즈 10]파일 처리 기초편

cedis 2026. 3. 24. 00:51
파이썬 기초 완성형 시리즈 · 10장
파일 처리 · open() · read() · write() · with · 저장과 불러오기

파일 처리 기초편
프로그램 안의 데이터를 화면 밖 파일에 저장하고 다시 읽어 오는 가장 실용적인 시작

이 장에서는 지금까지 화면에만 잠깐 보여 주던 값을 파일에 저장하고, 저장된 내용을 다시 읽어 오는 방법을 배웁니다. 파일 처리는 메모장에 기록을 남기는 것과 비슷하지만, 프로그램이 직접 파일을 만들고 읽고 수정할 수 있다는 점에서 훨씬 더 강력합니다. 이 장의 목표는 open()의 기본 구조, 읽기와 쓰기 모드, with 문법, 줄 단위 처리, 초보자 실수를 확실히 이해하는 것입니다.
이 장에서 배우는 것
  • 파일 처리가 왜 필요한지 이해합니다.
  • open()으로 파일을 여는 구조를 익힙니다.
  • 읽기(r), 쓰기(w), 추가(a) 모드를 배웁니다.
  • read(), readline(), readlines(), write()의 차이를 익힙니다.
  • 안전하게 파일을 닫는 with 문법과 자주 하는 실수를 정리합니다.
이 장을 끝내면
  • 텍스트 파일에 내용을 저장하고 다시 읽어 올 수 있습니다.
  • 파일 모드에 따라 동작이 어떻게 달라지는지 구분할 수 있습니다.
  • 줄 단위로 파일을 읽어 처리하는 기본 감각을 익힐 수 있습니다.
  • 다음 장의 예외 처리, 모듈, 실전 자동화 예제에 자연스럽게 연결할 수 있습니다.
1

파일 처리는 ‘실행 중인 값’을 ‘남는 데이터’로 바꾸는 작업입니다

지금까지는 변수에 값을 저장해도 프로그램이 끝나면 대부분 사라지는 것으로 이해해도 충분했습니다. 하지만 실제 프로그램은 결과를 파일로 남겨 두어야 할 때가 많습니다. 예를 들어 메모 저장, 회원 목록 기록, 로그 남기기, 설정 파일 읽기, 점수 기록 보관 같은 작업은 모두 파일 처리와 연결됩니다.

즉 파일 처리는 프로그램 실행 중에 만든 데이터를 바깥 세상에 보관하는 방법입니다. 그래서 파일을 다룰 수 있다는 것은 단순한 연습용 코드를 넘어, 실제로 쓸 수 있는 프로그램을 만들기 시작했다는 뜻이기도 합니다.

한눈에 보는 파일 처리의 큰 흐름

STEP 1
파일 열기
어떤 파일을 어떤 모드로 다룰지 정합니다.
STEP 2
읽기/쓰기
내용을 가져오거나 파일에 기록합니다.
STEP 3
처리하기
필요한 데이터만 가공하거나 출력합니다.
STEP 4
닫기
작업이 끝나면 파일을 안전하게 닫습니다.

open(): 파일을 여는 가장 기본 함수

파이썬에서 파일 처리는 보통 open()으로 시작합니다. 이 함수는 어떤 파일을 어떤 방식으로 열지 알려 주는 역할을 합니다.

file = open("memo.txt", "r", encoding="utf-8")
여기서 memo.txt는 파일 이름, r은 읽기 모드, encoding="utf-8"은 한글이 깨지지 않도록 문자 인코딩을 지정한 것입니다.
open()의 핵심 구성
파일 이름 : 어떤 파일을 다룰지
모드 : 읽기인지 쓰기인지 추가인지
인코딩 : 문자 깨짐 방지용 설정

파일 모드는 역할이 다릅니다

r
읽기 모드
기존 파일 내용을 읽을 때 사용합니다.
w
쓰기 모드
파일 내용을 새로 씁니다. 기존 내용은 덮어써집니다.
a
추가 모드
기존 내용을 유지한 채 뒤에 이어서 기록합니다.
특히 w 모드는 기존 내용을 지우고 새로 쓰기 때문에 초보자가 가장 조심해야 하는 모드입니다.

파일 읽기: read()

파일 전체 내용을 한 번에 읽고 싶다면 read()를 사용합니다.

file = open("memo.txt", "r", encoding="utf-8")
content = file.read()
print(content)
file.close()
작은 텍스트 파일을 한 번에 읽을 때 가장 이해하기 쉬운 방식입니다.

파일 쓰기: write()

파일에 텍스트를 저장할 때는 write()를 사용합니다.

file = open("memo.txt", "w", encoding="utf-8")
file.write("파이썬 파일 처리 연습")
file.close()
이 코드는 memo.txt 파일에 문장을 기록합니다. 파일이 없으면 새로 만들어지고, 있으면 덮어쓸 수 있습니다.

한 줄 읽기와 여러 줄 읽기

read()
전체 내용 한 번에
text = file.read()
readline()
한 줄씩 읽기
line = file.readline()
readlines()
줄 목록으로 읽기
lines = file.readlines()
처음에는 read()로 전체 흐름을 익히고, 이후 줄 단위 처리가 필요할 때 readline()이나 readlines()로 확장하면 이해가 쉽습니다.

with 문법: 파일을 더 안전하게 다루는 기본 습관

파일을 열었다면 작업이 끝난 뒤 닫아야 합니다. 그런데 초보자는 close()를 자주 잊어버립니다. 그래서 파이썬에서는 with 문법을 많이 사용합니다.

with open("memo.txt", "r", encoding="utf-8") as file:
    content = file.read()
    print(content)
with 블록을 벗어나면 파일이 자동으로 정리되므로, 실무와 학습 모두에서 매우 권장되는 방식입니다.

추가 기록하기: a 모드

with open("log.txt", "a", encoding="utf-8") as file:
    file.write("새로운 기록 추가\n")
기존 내용을 유지한 채 맨 뒤에 이어서 기록합니다. 로그 저장, 메모 누적, 일지 추가 등에 자주 씁니다.

줄바꿈도 직접 써 주어야 합니다

with open("names.txt", "w", encoding="utf-8") as file:
    file.write("민수\n")
    file.write("지영\n")
write()는 자동으로 줄을 바꿔 주지 않기 때문에, 줄을 나누고 싶다면 \n을 직접 넣어 주어야 합니다.

짧은 종합 예제: 메모 저장 후 다시 읽기

memo = input("저장할 메모를 입력하세요: ")

with open("memo.txt", "w", encoding="utf-8") as file:
    file.write(memo)

with open("memo.txt", "r", encoding="utf-8") as file:
    saved_text = file.read()

print("저장된 메모:", saved_text)
이 예제는 입력, 변수 저장, 파일 쓰기, 파일 읽기, 출력이 한 번에 연결된 매우 좋은 연습입니다. 지금까지 배운 문법들이 실제로 어떻게 묶이는지 보여 주는 대표적인 예제라고 볼 수 있습니다.

초보자가 자주 하는 실수 1

file = open("memo.txt", "w", encoding="utf-8")
file.write("새 내용")
close()를 호출하지 않았습니다. 작은 예제에서는 문제 없어 보일 수 있지만, 파일 정리를 잊지 않는 습관이 중요합니다. 가능하면 with 문법을 쓰는 편이 좋습니다.

초보자가 자주 하는 실수 2

with open("memo.txt", "w", encoding="utf-8") as file:
    file.write("새 메모")
겉보기엔 문제 없어 보이지만, 기존 memo.txt 내용이 있었다면 모두 덮어써집니다. 기존 내용을 유지하고 싶다면 a 모드를 고민해야 합니다.

초보자가 자주 하는 실수 3

with open("memo.txt", "r") as file:
    text = file.read()
환경에 따라 한글이 깨질 수 있습니다. 학습 단계에서는 가능하면 encoding="utf-8"을 함께 적는 습관이 좋습니다.

올바른 수정 예시

with open("memo.txt", "r", encoding="utf-8") as file:
    text = file.read()
파일 모드와 인코딩을 명확히 적으면 파일 처리 오류를 줄이는 데 큰 도움이 됩니다.

파일 처리 사고 흐름 한눈에 보기

STEP 1
파일 목적 정하기
읽을지, 새로 쓸지, 추가할지 먼저 결정합니다.
STEP 2
with로 열기
안전하게 파일을 다루는 기본 습관입니다.
STEP 3
읽기/쓰기 실행
read, write 등 필요한 메서드를 사용합니다.
STEP 4
후속 활용
읽은 내용을 출력, 조건문, 반복문과 연결합니다.

이 장의 핵심 요약

파일 처리는 데이터를 저장하고 다시 불러오는 기본 기술이다.
open()은 파일 이름, 모드, 인코딩을 지정해 파일을 연다.
r은 읽기, w는 덮어쓰기, a는 뒤에 추가하기 모드다.
with 문법은 파일을 더 안전하고 깔끔하게 다루게 해 준다.

체크리스트

□ 파일 읽기, 쓰기, 추가 모드의 차이를 설명할 수 있다.
□ read()와 write()의 기본 사용법을 알고 있다.
□ with 문법을 사용해 파일을 안전하게 열고 닫을 수 있다.
□ 줄바꿈과 인코딩을 왜 신경 써야 하는지 이해했다.

미니 연습문제

  1. 자신의 한 줄 소개를 입력받아 intro.txt 파일에 저장해 보세요.
  2. 이미 저장된 텍스트 파일을 읽어 화면에 출력하는 코드를 작성해 보세요.
  3. a 모드를 사용해 메모 파일에 새 줄을 하나 추가하는 연습을 해 보세요.
Next Chapter
11장에서는 예외 처리와 모듈, 그리고 실전에서 자주 쓰는 파이썬 구성 요소로 넘어가 코드가 더 안정적이고 확장 가능하게 움직이도록 만드는 방법을 배우게 됩니다.
파일까지 다룰 수 있게 되었다면, 다음 장에서는 오류를 다루고 기능을 나누는 좀 더 실제적인 구조로 넘어갑니다.