##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 파일을 읽어 출력

# 저장된 이름들을 줄마다 출력