파이썬 write() 실전 예제 20개

텍스트 파일 저장, 로그 기록, CSV 작성, 일기 저장, 누적 기록 등 현장에서 자주 쓰는 패턴을 한 번에 정리한 학습용 HTML 자료

핵심 개념

  • write()는 문자열을 파일에 씁니다.
  • 숫자를 쓰려면 str() 또는 f-string으로 변환해야 합니다.
  • 줄바꿈은 직접 \n을 넣어야 합니다.
  • w: 새로 쓰기, a: 이어 쓰기

자주 만나는 실수

  • f.write(123)처럼 숫자를 바로 쓰면 오류
  • 모드를 잘못 선택해서 기존 내용이 지워짐
  • 줄바꿈을 안 넣어서 내용이 한 줄로 붙음
  • 파일을 닫지 않아서 저장이 덜 되는 경우

권장 방식

  • with open(...)을 사용하면 자동으로 닫힘
  • 인코딩은 보통 encoding='utf-8' 권장
  • 여러 줄은 반복문과 함께 사용하면 편리함
  • 로그, 보고서, 결과 저장에 매우 자주 사용됨

01. 가장 기본적인 문자열 저장

기초
with open('hello.txt', 'w', encoding='utf-8') as f:
    f.write('안녕하세요')

파일에 한 문장을 저장하는 가장 기본적인 예제입니다.

결과: hello.txt안녕하세요가 저장됩니다.

02. 줄바꿈 포함하여 두 줄 쓰기

기초
with open('memo.txt', 'w', encoding='utf-8') as f:
    f.write('첫째 줄\n')
    f.write('둘째 줄')

\n을 넣어야 다음 줄로 내려갑니다.

03. 숫자를 문자열로 바꿔 저장

형변환
score = 95
with open('score.txt', 'w', encoding='utf-8') as f:
    f.write(str(score))

write()는 문자열만 받으므로 str() 변환이 필요합니다.

04. f-string으로 문장 만들기

실전
name = '김인수'
age = 17
with open('profile.txt', 'w', encoding='utf-8') as f:
    f.write(f'이름: {name}\n나이: {age}')

변수를 문장 속에 자연스럽게 넣을 때 가장 많이 쓰는 방식입니다.

05. 기존 내용 덮어쓰기

모드 w
with open('data.txt', 'w', encoding='utf-8') as f:
    f.write('새로운 내용')

w 모드는 기존 파일 내용이 있으면 모두 지우고 새로 씁니다.

중요: 실수로 기존 자료를 지울 수 있으니 주의해야 합니다.

06. 기존 파일 끝에 이어 쓰기

모드 a
with open('log.txt', 'a', encoding='utf-8') as f:
    f.write('프로그램 실행 완료\n')

a 모드는 기존 파일 끝에 내용을 추가합니다.

07. 반복문으로 여러 줄 저장

반복문
with open('numbers.txt', 'w', encoding='utf-8') as f:
    for i in range(1, 6):
        f.write(f'{i}\n')

1부터 5까지를 한 줄씩 저장하는 예제입니다.

08. 리스트 내용을 파일에 한 줄씩 저장

자료구조
fruits = ['사과', '바나나', '포도']
with open('fruits.txt', 'w', encoding='utf-8') as f:
    for fruit in fruits:
        f.write(fruit + '\n')

리스트 데이터를 파일로 내보낼 때 자주 쓰는 패턴입니다.

09. 구구단 결과 저장

학습용
with open('gugudan.txt', 'w', encoding='utf-8') as f:
    for i in range(2, 10):
        for j in range(1, 10):
            f.write(f'{i} x {j} = {i*j}\n')
        f.write('\n')

계산 결과를 텍스트 보고서처럼 저장할 수 있습니다.

10. 사용자 입력 저장

입력 처리
msg = input('메시지 입력: ')
with open('user_message.txt', 'w', encoding='utf-8') as f:
    f.write(msg)

사용자가 입력한 문장을 그대로 파일에 저장합니다.

11. 날짜와 함께 일기 저장

실생활
from datetime import date

text = '오늘은 파이썬 write()를 공부했다.'
with open('diary.txt', 'a', encoding='utf-8') as f:
    f.write(f'[{date.today()}] {text}\n')

일기, 학습 기록, 활동 기록에 활용할 수 있습니다.

12. 간단한 로그 파일 만들기

로그
from datetime import datetime

with open('app.log', 'a', encoding='utf-8') as f:
    f.write(f'[{datetime.now()}] 로그인 성공\n')

프로그램 실행 기록을 남길 때 대표적으로 사용하는 형태입니다.

13. CSV 형식처럼 저장하기

데이터 저장
name, kor, eng, math = '민지', 90, 88, 95
with open('scores.csv', 'w', encoding='utf-8') as f:
    f.write('이름,국어,영어,수학\n')
    f.write(f'{name},{kor},{eng},{math}\n')

쉼표로 구분된 데이터는 엑셀이나 스프레드시트에서 열기 쉽습니다.

14. 여러 학생 성적을 CSV로 저장

응용
students = [('철수', 80), ('영희', 92), ('민수', 77)]
with open('students.csv', 'w', encoding='utf-8') as f:
    f.write('이름,점수\n')
    for name, score in students:
        f.write(f'{name},{score}\n')

반복문과 함께 쓰면 표 형태 데이터를 손쉽게 저장할 수 있습니다.

15. HTML 파일 직접 생성하기

웹 기초
html = '<h1>안녕하세요</h1><p>파이썬이 만든 HTML 파일입니다.</p>'
with open('index.html', 'w', encoding='utf-8') as f:
    f.write(html)

파이썬으로 HTML 문서를 생성하는 가장 간단한 형태입니다.

16. 보고서 형식으로 저장

문서 생성
title = '파이썬 실습 보고서'
content = '오늘은 파일 입출력을 연습했다.'
with open('report.txt', 'w', encoding='utf-8') as f:
    f.write(title + '\n')
    f.write('=' * 20 + '\n')
    f.write(content + '\n')

제목과 구분선을 넣어 문서처럼 정리할 수 있습니다.

17. 에러 발생 기록 저장

예외 처리
try:
    x = 10 / 0
except Exception as e:
    with open('error.log', 'a', encoding='utf-8') as f:
        f.write(f'에러 발생: {e}\n')

프로그램 오류를 파일에 남기면 문제를 나중에 분석하기 쉽습니다.

18. 사용자 여러 명의 이름 저장

누적 기록
names = ['지우', '서연', '하준']
with open('names.txt', 'a', encoding='utf-8') as f:
    for name in names:
        f.write(name + '\n')

명단, 출석, 참가자 목록 저장에 응용할 수 있습니다.

19. write()의 반환값 확인

심화
with open('test.txt', 'w', encoding='utf-8') as f:
    n = f.write('Python')
    print(n)

write()는 보통 저장한 문자 수를 반환합니다.

출력 예: 6

20. 문제 풀이 결과를 파일로 저장

알고리즘
a, b = 48, 18
result = f'{a}와 {b}의 최대공약수는 6입니다.'
with open('gcd_result.txt', 'w', encoding='utf-8') as f:
    f.write(result)

알고리즘 실행 결과를 저장해 제출용 출력 파일을 만들 수 있습니다.