Python

[Python] open/write/read - 파일 입출력

비번변경 2022. 10. 10. 21:48

파일 입출력

Python은 open 함수를 이용하여 파일 입출력 처리를 할 수 있다. open 함수를 이용해 파일을 읽고 써보도록 한다.

 

 

open() ~ close()

기본적으로 파일명과 파일 열기 모드를 지정하여 사용하며, 파일에 작업을 마친 후에는 close 함수로 파일을 닫아야 한다.

f = open('FILE', 'MODE')

# 작업

f.close()

파일 열기 모드는 다음과 같다. 기본적으로 텍스트 읽기 모드로 열린다.

문자 의미
r 읽기 (기본값)
w 쓰기
x 독점적인 파일 생성. 파일이 이미 존재하는 경우 실패
a 내용 추가
b 바이너리
t 텍스트 (기본값)
+ 갱신(읽기 및 쓰기)

 

 

with open()

open 함수를 사용할 때 with와 같이 사용하면 with 문 블록이 끝날 때 open 한 파일도 자동으로 close 된다. 따라서 open 함수는 with문과 함께 사용하는 것을 권장한다.

with open('FILE', 'MODE') as f:
	# 작업

 

 

파일 생성 및 쓰기

파일에 내용을 작성할 때는 write 함수를 사용할 수 있다. write 함수는 개행 문자를 입력해주어야 한다.

 

colors = ['red', 'yellow', 'blue']

with open('run.log', 'w') as f:
    for i in colors:
        f.write(f"{i}\n")

소스를 실행하면 현재 디렉터리에 해당 파일이 생성된 것을 확인할 수 있다.

w 모드로 open

내용도 정상적으로 작성되었다.

내용 확인

 

 

w 모드로 파일을 열 때는 기존에 있던 파일 내용이 유지되지 않기 때문에 주의해야 한다. 기존 데이터를 유지하면서 내용을 덧붙이고 싶을 때는 a 모드로 열어야 한다.

 

 

파일 읽기

이번엔 파일의 내용을 읽어드리려고 한다.

 

read()

파일의 내용 전체를 읽은 문자열을 반환한다.

with open('run.log', 'r') as f:
    print(f.read())

 

readline()

파일의 한 줄(개행 문자를 만날 때까지)을 읽은 문자열을 반환한다.

with open('run.log', 'r') as f:
    print(f.readline())

모든 줄을 읽을 때는 반복문을 사용한다.

 

 

readlines()

파일의 모든 줄을 읽어, 각 줄을 문자열 리스트로 반환한다.

with open('run.log', 'r') as f:
    print(f.readlines())

 

 

참고 문서

https://wikidocs.net/26#_2

https://www.daleseo.com/python-open/