파이썬 공부를 하다 보면 데이터를 파일에 저장하거나 불러오는 작업이 꼭 필요해져요.
오늘은 open(), read(), write()를 중심으로 파일 입출력(File I/O)을 정리해볼게요!
✅ 파일 입출력이란?
- 입력(Input): 외부 파일에서 데이터를 읽어오는 것
- 출력(Output): 프로그램에서 파일로 데이터를 저장하는 것
- 파이썬에서는 open() 함수를 사용해 파일을 열고, 읽기/쓰기 작업을 해요.
1️⃣ 📂 파일 열기 – open()
f = open("파일명", "모드")
| 모드 | 의미 | 설명 |
| "w" | 쓰기 모드 | 새로 쓰기 (기존 내용 삭제) |
| "a" | 추가 모드 | 기존 파일 끝에 내용 추가 |
| "b" | 바이너리 모드 | 텍스트가 아닌 이진 데이터 (예: 이미지 파일) |
| "t" | 텍스트 모드 | 기본값 (생략 가능) |
| "r" | 읽기 모드 | 파일 읽기 전용 |
# example.txt 파일 읽기
f = open("example.txt", "r")
2️⃣ 📖 파일 읽기 – read(), readline(), readlines()
📖 1. read(): 전체 읽기
f = open("example.txt", "r")
content = f.read()
print(content)
f.close()
📖 2. readline(): 한 줄씩 읽기
f = open("example.txt", "r")
line = f.readline()
print(line)
f.close()
📖 3. readlines(): 전체를 리스트로 읽기
f = open("example.txt", "r")
lines = f.readlines()
for line in lines:
print(line.strip())
f.close()
3️⃣ ✍️ 파일 쓰기 – write()
f = open("example.txt", "w")
f.write("Hello, Python!\n")
f.write("파일 입출력 공부 중!\n")
f.close()
📌 "w" 모드로 열면 기존 내용이 모두 지워지고 새로 작성돼요.
🔄 파일 추가 – a 모드
f = open("example.txt", "a")
f.write("이 줄은 추가됩니다!\n")
f.close()
🧹 파일 닫기 – close()
- 파일 작업을 마친 뒤에는 close()로 닫아야 리소스를 반환해요.
- 파일을 닫지 않으면 데이터가 저장되지 않거나 메모리 누수가 생길 수 있어요.
📌 with문으로 파일 자동 닫기
with open("example.txt", "r") as f:
content = f.read()
print(content)
with 구문을 쓰면 close()를 따로 호출하지 않아도 파일이 자동으로 닫혀요!
🔥 실전 예제: 메모장 프로그램 느낌


🎯 한눈에 정리
| 함수 | 설명 |
| open(파일명, 모드) | 파일 열기 |
| read() | 파일 전체 읽기 |
| readline() | 한 줄씩 읽기 |
| readlines() | 전체를 리스트로 읽기 |
| write() | 파일 쓰기 |
| close() | 파일 닫기 |
| with open() | 자동으로 파일 닫기 처리 |
📝 오늘의 정리
open()으로 파일을 열고, read()나 write()로 작업
작업 후엔 close() 필수, with 구문으로 자동 관리 가능
"w", "a", "r" 모드를 이해하면 파일 다루기가 훨씬 쉬워져요!
🔜 다음 글 예고
[파이썬] 에러 걱정 끝! try-except로 예외 처리 배우기
이제 파일을 다룰 때 생길 수 있는 오류를 안전하게 처리하는 법까지 배워봅시다!
'SK-Rookies > 파이썬' 카테고리의 다른 글
| [파이썬] 객체지향 프로그래밍 입문: 클래스와 객체 (0) | 2025.07.04 |
|---|---|
| [파이썬] 에러 걱정 끝! try-except로 예외 처리 배우기 (0) | 2025.07.04 |
| [파이썬] 꼭 알아야 할 내장 함수들 – len, range, type, list 등 (0) | 2025.07.04 |
| [파이썬] 함수: 코드 재사용의 마법 – def, return, 매개변수 (0) | 2025.07.04 |
| [파이썬] for문 완전정리 (range, 리스트 순회, 중첩 for까지!) (0) | 2025.07.03 |