Python Basic _ 9-1. 파이썬 읽기, 쓰기

WONY_yoon·2025년 10월 9일
post-thumbnail

Python Read Write 알아보기

# Chapter09-1
# 파이썬 파일 읽기 및 쓰기 기본
# 파일 입출력의 기본 개념과 모드 사용법 정리
# 읽기(r), 쓰기(w), 추가(a), 텍스트(t), 바이너리(b)

# 상대경로('../, ./'), 절대경로('C:\\example\\test.txt')

# 파일 읽기(Read)
# 예제 1 : open() 사용 방식
f = open('resource/it_news.txt', 'r', encoding='UTF-8')
print(f.read())  # 파일 전체 읽기

print('======' * 8)
print()

# 파일 객체 속성 확인
print(dir(f))          # 사용 가능한 속성 및 메서드 확인
print(f.encoding)      # 인코딩 방식
print(f.name)          # 파일명
print(f.mode)          # 파일 모드 (읽기/쓰기)
cts = f.read()         # 이미 읽은 후에는 커서가 끝으로 이동했으므로 내용 없음
print(cts)
f.close()              # 파일 닫기 (리소스 반환)
print('=====' * 8)

print()

# 예제 2 : with 구문 사용 (자동으로 close 처리)
with open('resource/it_news.txt', 'r', encoding='UTF-8') as f:
    c = f.read()
    print(c)
    print(iter(c))      # 이터레이터 객체
    print(list(c))      # 문자 리스트

print()

# 예제 3 : read(n) → n개의 문자(또는 byte)만 읽기
with open('resource/it_news.txt', 'r', encoding='UTF-8') as f:
    c = f.read(20)
    print(c)
    c = f.read(20)
    print(c)
    c = f.read(20)
    print(c)
    f.seek(0, 0)        # 커서를 파일 처음으로 이동
    c = f.read(20)
    print(c)

print()

# 예제 4 : readline() → 한 줄씩 읽기
with open('resource/it_news.txt', 'r', encoding='UTF-8') as f:
    c = f.readline()
    print(c)
    c = f.readline()
    print(c)
    c = f.readline()
    print(c)

print('=====' * 8)
print()

# 예제 5 : readlines() → 모든 줄을 리스트로 반환
with open('resource/it_news.txt', 'r', encoding='UTF-8') as f:
    cts = f.readlines()
    print(cts)
    print()
    for c in cts:
        print(c, end='')

print('=====' * 8)

# 파일 쓰기(Write)
# 예제 1 : w 모드 (덮어쓰기)
with open('resource/contents1.txt', 'w') as f:
    f.write('I love python\n')

# 예제 2 : wt 모드 (텍스트 쓰기, 기존 내용 삭제)
with open('resource/contents1.txt', 'wt') as f:
    f.write('I love python2\n')

# 예제 3 : at 모드 (추가쓰기)
with open('resource/contents1.txt', 'at') as f:
    f.write('I love python3\n')

# 예제 4 : writelines() → 리스트 데이터를 파일로 저장
with open('resource/contents2.txt', 'w') as f:
    fruits = ['Orange\n', 'Apple\n', 'Banana\n', 'Melon\n']
    f.writelines(fruits)

# 예제 5 : print() 함수를 이용한 파일 쓰기
with open('resource/contents3.txt', 'w') as f:
    print('Test Text Write!', file=f)
    print('Test Text Write!', file=f)
    print('Test Text Write!', file=f)

0개의 댓글