##Python/0. 파이썬 기초
9. 파이썬 기초 : 파일 다루기
허밍-
2025. 4. 7. 15:46
안녕하세요, 허밍입니다! 😊
이번 포스팅에서는 파이썬에서 텍스트 파일을 다루는 방법을 배워볼게요.
파일 입출력은 데이터를 저장하거나 불러올 때 아주 유용하게 쓰이는 기능이에요.
기록이 필요한 프로그램을 만들고 싶다면 꼭 알아야 할 필수 스킬!
📌 1. 파일 열기와 닫기 기본 구조
파이썬에서 파일을 다룰 때는 보통 다음과 같은 구조로 작업합니다.
파일객체 = open("파일명", "모드")
# 파일 작업 수행
파일객체.close()
✔️ open() 함수로 파일 열기
✔️ "모드"는 어떤 작업을 할지 지정하는 문자열
✔️ close()로 파일 닫기 (자원 정리)
📌 2. 파일 열기 모드 종류
모드 의미 설명
"r" | 읽기(Read) | 파일이 존재해야 함 |
"w" | 쓰기(Write) | 파일이 없으면 새로 생성, 있으면 덮어쓰기 |
"a" | 추가(Append) | 파일 끝에 내용 추가 |
"x" | 생성(Create) | 파일이 있으면 오류 발생 |
"b" | 바이너리(Binary) | 이미지, 영상 등 바이너리 파일용 (예: "rb", "wb") |
📌 3. 텍스트 파일에 쓰기 (write())
🎯 예제: 파일에 문자열 저장
f = open("hello.txt", "w")
f.write("안녕하세요!\n파이썬 파일 입출력 예제입니다.")
f.close()
🟢 실행 후, 같은 폴더에 hello.txt라는 파일이 생성되고 내용이 저장돼요.
✔️ "w" 모드는 파일이 없으면 생성, 있으면 덮어씀
✔️ \n은 줄바꿈 문자
📌 4. 텍스트 파일 읽기 (read())
🎯 예제: 파일 내용 전체 읽기
f = open("hello.txt", "r")
content = f.read()
print(content)
f.close()
✔️ read()는 파일 전체 내용을 문자열로 반환함
✔️ 파일이 존재하지 않으면 FileNotFoundError 발생
📌 5. 한 줄씩 읽기 (readline() / readlines())
🎯 readline() → 한 줄씩 읽기
f = open("hello.txt", "r")
line1 = f.readline()
line2 = f.readline()
print(line1, line2)
f.close()
🎯 readlines() → 모든 줄을 리스트로 읽기
f = open("hello.txt", "r")
lines = f.readlines()
for line in lines:
print(line.strip())
f.close()
✔️ strip()을 사용하면 줄 끝의 \n 제거 가능
📌 6. 파일에 내용 추가 (a 모드)
🎯 예제: 기존 파일에 내용 덧붙이기
f = open("hello.txt", "a")
f.write("\n새로운 줄을 추가합니다.")
f.close()
✔️ "a" 모드는 기존 내용을 유지하고 새로운 내용을 추가함
📌 7. with문을 사용한 파일 처리 (추천!)
파일을 열고 나서 자동으로 닫아주는 방법으로,
with 구문을 사용하는 것이 가장 안전하고 깔끔한 코드 작성 방식이에요.
🎯 예제: 파일 읽기 (with 사용)
with open("hello.txt", "r") as f:
content = f.read()
print(content)
✔️ with를 사용하면 close()를 따로 호출하지 않아도 자동으로 닫힘
✔️ 에러가 발생해도 자원이 안전하게 정리됨
📌 8. 간단한 예제: 사용자 입력을 파일에 저장
with open("user_input.txt", "w") as f:
name = input("이름을 입력하세요: ")
f.write(f"입력된 이름: {name}")
📂 user_input.txt 파일이 생성되고 사용자 입력이 저장됨!
✅ 오늘 배운 내용 정리
내용 요약
open() | 파일 열기 ("r", "w", "a" 등 모드 지정) |
write() | 파일에 문자열 쓰기 |
read(), readline(), readlines() | 파일에서 내용 읽기 |
close() | 파일 닫기 (자원 정리) |
with | 자동으로 파일 닫아주는 구문 (추천!) |
📌 실전 연습 문제
❓ 문제 1: 사용자 이름 5개 입력받아 names.txt에 저장
# 예시: 사용자로부터 이름을 5번 입력받아 줄마다 저장
❓ 문제 2: names.txt 파일을 읽어 출력
# 저장된 이름들을 줄마다 출력