
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)