[파이썬 하루 하나씩] 파일 읽기 완전정복: open(), read() 완벽 사용법

포커스 키워드: 파이썬 파일 읽기, open() 함수, read()

“텍스트 파일 하나 읽는 것도 헷갈리시죠?” 저도 그랬습니다. 파일 하나 여는 게 뭐가 어렵냐 싶지만, 막상 `open()`과 `read()`를 쓰다 보면 생각보다 예외가 많고 상황도 다양하죠.
이제는 확실히 정리할 때입니다. 이 글은 파이썬 파일 읽기 기초부터 예외처리까지, 가장 실용적으로 알려주는 가이드입니다.

Thank you for reading this post, don't forget to subscribe!

1. open() 함수란? – 파일을 여는 방법

open 함수 사용법 예시 이미지

open() 함수는 파일을 읽거나 쓰기 위해 여는 가장 기본적인 파이썬 내장 함수입니다. 자주 쓰이는 기본 구문은 아래와 같습니다.


file = open("hello.txt", "r", encoding="utf-8")
요소설명
“hello.txt”읽고 싶은 파일 이름 (경로 포함 가능)
“r”읽기 모드 (기본값)
encoding=”utf-8″한글 파일 읽기를 위한 필수 설정

팩트 문장: “파일은 열면 닫아야 한다. 그게 기본이다.”

2. read(), readline(), readlines() 비교

read와 readline 비교

파이썬에서 파일을 읽는 방법은 총 3가지입니다. 각각의 특징과 차이점을 함께 살펴보죠.


# 전체 내용 읽기
with open("sample.txt", "r", encoding="utf-8") as f:
    content = f.read()
    print(content)

# 한 줄씩 읽기
with open("sample.txt", "r", encoding="utf-8") as f:
    line = f.readline()
    while line:
        print(line.strip())
        line = f.readline()

# 모든 줄을 리스트로
with open("sample.txt", "r", encoding="utf-8") as f:
    lines = f.readlines()
    for line in lines:
        print(line.strip())

3. with 문, 인코딩, 예외 처리까지!

  • with 문을 쓰면 파일 자동으로 닫힘. 명시적 close() 생략 가능.
  • encoding은 필수. 안 하면 한글 깨진다!
  • 예외 처리로 FileNotFoundError 방지 가능.

import os

if os.path.exists("sample.txt"):
    with open("sample.txt", "r", encoding="utf-8") as f:
        print(f.read())
else:
    print("파일이 존재하지 않습니다.")

✔ 핵심 정리: 작은 습관 하나가, 큰 에러를 막아줍니다.

4. 실전 예제 – 자주 쓰는 패턴 모음

파일 읽기 실전 코드 이미지

실제로 우리가 많이 쓰는 파일 읽기 패턴들을 예제로 정리했습니다. 복붙해서 바로 써도 됩니다!

패턴설명
전체 읽기파일 크기가 작고 내용을 한 번에 확인할 때 사용
라인 반복 읽기많은 줄을 순차적으로 처리할 때 유용
리스트로 읽기각 줄을 리스트로 받아 일괄 처리할 때 좋음

5. 자주 묻는 질문 정리

커뮤니티에서 자주 보이는 질문들을 한눈에 정리했습니다.

  • Q. 파일이 없을 때 에러나는 이유는?

    A. 파일이 존재하지 않는데 open(“a.txt”)를 호출하면 FileNotFoundError가 발생합니다.

  • Q. 한글 깨짐은 왜 생기나요?

    A. 파일 인코딩과 읽는 인코딩이 다를 때 발생합니다. 대부분 utf-8로 읽는 게 안전합니다.

  • Q. readlines()가 느린 이유는?

    A. 전체 줄을 리스트에 넣기 때문에 큰 파일에서는 메모리를 많이 씁니다.

6. 마무리 요약과 꿀팁

파일 읽기 요약 인포그래픽

  • 항상 with open()을 습관처럼 사용하세요.
  • 파일 인코딩은 utf-8이 표준입니다.
  • 파일이 크면 readline()으로 처리하세요.

팩트 문장: “파일을 여는 건 기술이 아니라 태도다. 매번 신중해야 한다.”

실전 후기와 꿀팁 – ‘파일 하나 열 줄 몰라’ 울 뻔했던 날

“파일 열려고 했는데 한글 다 깨지고, 에러 메시지는 cryptic하고, 결국 컴퓨터 끄고 나왔어요. 그게 첫 번째 시도였죠. 다시 켰을 땐, 검색창에 이렇게 썼습니다. ‘파이썬 한글 파일 깨짐 안 되게 읽는 법’…”

그땐 몰랐어요. encoding="utf-8" 하나만으로 모든 게 달라질 수 있다는 걸. 단순해 보이지만 파이썬의 파일 읽기는 섬세한 디테일의 집합체입니다. 초보자일수록 ‘왜 안 되지?’보다 ‘내가 뭘 안 썼지?’를 먼저 생각해야 해요.

✔ 실전 꿀팁 한눈에 보기

  • 파일 열기 전엔 os.path.exists()로 존재 확인!
  • 파일이 크면 read() 대신 readline()을 써라
  • with open()은 이제 습관처럼 써야 한다
  • 한글 깨짐? encoding="utf-8"이 기본이다

팩트 문장: “파일이 안 읽힌다고? 99%는 네가 안 닫았거나, 인코딩을 안 줬기 때문이야.”

나도 모르게 자주 겪는 ‘파일 읽기 오류’는 대부분 사소한 실수에서 시작됩니다. 이 글을 읽는 당신만큼은 같은 실수를 반복하지 않길 바라는 마음으로, 저의 ‘초짜 시절’을 공유합니다.

open() 함수에서 꼭 with를 써야 하나요?
필수는 아니지만, 쓰는 걸 강력 추천합니다. with open() 구문은 파일을 자동으로 닫아주기 때문에 버그나 자원 누수를 줄일 수 있습니다.
read()랑 readline(), readlines()는 뭐가 달라요?
read()는 전체 텍스트를 한 번에 읽고, readline()은 한 줄씩 읽으며, readlines()는 줄 단위로 리스트에 담습니다. 상황에 따라 선택하세요.
파이썬에서 파일이 없으면 오류가 나나요?
네. 존재하지 않는 파일을 읽으려 하면 FileNotFoundError가 발생합니다. os.path.exists()로 미리 확인하는 습관을 들이세요.
read() 했더니 한글이 깨져요!
인코딩 문제입니다. 대부분 utf-8로 인코딩된 파일이 많으니, open(..., encoding="utf-8")을 꼭 추가하세요.
read() 후 파일을 또 읽으려고 하니까 안 돼요!
read()는 파일 포인터를 끝까지 이동시킵니다. 다시 읽으려면 f.seek(0)으로 처음으로 이동하거나, 파일을 다시 열어야 합니다.

🔍 시각 자료 + 외부 참고로 더 깊게 이해하기


파이썬 파일 읽기 개념 시각화

📘
W3Schools: 파이썬 파일 열기 기본 가이드
– 기초 개념과 예제를 쉽고 간결하게 설명한 사이트입니다.

📗
Real Python: 파일 입출력 심화 강좌
– 실전 예제와 함께 다양한 파일 처리 방식이 정리되어 있어 매우 실용적입니다.

🎬
유튜브 강의: 파이썬 파일 읽기/쓰기 쉽게 배우기
– 입문자 눈높이에서 진행되는 인기 강의입니다.

✔ 요약 다시 보기

  • read()는 전체 내용, readline()은 한 줄, readlines()는 리스트로
  • 파일이 존재하는지 확인은 os.path.exists()
  • 파일은 반드시 with open()으로 안전하게 다룰 것
  • 인코딩은 거의 무조건 “utf-8″로!

이제 `open()`과 `read()`는 두려움의 대상이 아닙니다. 파일 하나 제대로 여는 것만으로도 개발자는 한 걸음 성장합니다. 익숙해질수록 파일은 단순한 데이터 저장소가 아닌, 문맥을 가진 기록이란 걸 느끼게 됩니다.
오늘 하나 배웠다면, 내일은 그걸 써보는 날이 되기를 바랍니다.

이 글이 도움이 되었나요?

★ ★ ★ ★ ★

5점 만점 중 평균 ★★★★★

Tags: 파이썬, 파일읽기, open함수, read함수, with문, 파일처리, 코딩초보, 파이썬기초, 인코딩, 예외처리

포커스 키워드: 파이썬 파일 읽기, open() 함수, read()

메타 설명: 파이썬에서 파일을 읽을 때 반드시 알아야 할 open(), read(), readline(), readlines() 사용법과 함께, 실전 예제와 자주 묻는 질문을 한 번에 정리한 초보자 맞춤 가이드입니다.

슬러그: python-open-read-guide


HANSORI.AI_Blog Labs에서 더 알아보기

구독을 신청하면 최신 게시물을 이메일로 받아볼 수 있습니다.