본문 바로가기

Python 기초

파이썬 기초(19)-파일 입출력

*이 글을 읽기전에 작성자 개인의견이 있으니, 다른 블로그와 교차로 읽는것을 권장합니다.*

1. 파일 열기

open() 함수를 이용해 파일을 생성하고, 열며, close() 함수를 통해 파일을 저장하고 닫습니다.

  • 읽은것인지 쓸것인지 모드에 들어감
  • 바이너리 데이터: 동영상, 이미지, 글자가 아닌 데이터
  • 텍스트 데이터는 생략이 가능함
  • 운영체제의 힘을 빌려서 스트림을 통해 파일 입출력
  • 열기: 입력+ 출력
  • 입력: 밖에 있는 파일 불러오기
  • 출력: 밖으로 파일 생성
f = open("파일명", "모드")
파일명: 열고자 하는 파일의 이름이나 경로

모드: 파일을 어떻게 열 것인지를 지정
r: 읽기 모드 (기본값)  #read
w: 쓰기 모드 (파일이 있으면 덮어쓰기) #write
a: 추가 모드 (파일의 끝에 내용을 추가) #add
b: 바이너리 모드 (텍스트가 아닌 바이너리 데이터를 읽고/쓸 때 사용) #binary
+: 읽기와 쓰기 모드

r,w,a,b 모드는 사용할때 open('파일이름', 'r') 형태로 사용합니다.

.write(), .read(), .add(), .binary() 메서드를 사용할때 뒤에 lines를 사용하면 모든 줄 쓰기가 됩니다. 따라서 여러 문자열을 한 개의 메서드에 작성해야 할 경우 메서드 뒤에 +lines를 붙입니다.

메서드() vs 메서드lines() 비교

2. 파일 쓰기

#open(),close(), w 쓰기모드
f=open('name.txt','w')  #파일열기,쓰기모드
f.write('text message') #\n은 출력서식 개행문자
f.close() #파일닫기, 데이터저장

 

생성된 파일, 속성 확인

f=open('data.txt', 'wt')
for i in range(6):
    f.write('파일 테스트: ' + str(i) + '\n')
f.close()
print('data.txt 파일에 쓰기 완료')

data.txt파일 내용

3. with문 

with문파일을 열고 작업을 수행한 후 자동적으로 파일을 닫을 수 있습니다. open() 함수와 close() 함수의 기능을 동시에 가지고 있습니다. 다만, with + open() 함수를 써야하지만 close()는 쓰지 않아도 작동합니다.

# with문
# data폴더 만들고나서
with open('./data/input.txt', 'w') as f:  #input.txt파일 쓰기모드로 f변수 지정
    while True:
        inn=input('단어 입력: ')
        if inn.lower() =='quit':
            break
        f.write(inn+ '\n')

그림으로 표현

4. 파일 읽기

r모드를 통해 파일을 읽기모드로 사용합니다.

# r모드
f=open('name.txt', 'r')
a=f.read(4)
f.close()
print(a)

# while문과 with문을 사용해서 r모드
with open('name.txt', 'r') as f:
    while True:
        a=f.read(8)
#if가 True값을 출력한다면, if not은 False값을 출력합니다       
        if not a: 
            break
        print(a, end='') #출력서식 붙여서

5. 예외 처리와 함께 사용

파일 입출력 중에는 여러 가지 오류가 발생할 수 있습니다 (예: 파일이 존재하지 않음). 이를 위해 try-except 블록을 사용해 오류를 예외처리합니다.

오류확인

#예외처리와 병용
try:
    with open('file.txt', 'r') as f: #FileNotFoundError에러
        con=f.read()
        print(con)
except FileNotFoundError:
    print('파일 존재안함')