파일 입출력
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 모드로 파일을 열 때는 기존에 있던 파일 내용이 유지되지 않기 때문에 주의해야 한다. 기존 데이터를 유지하면서 내용을 덧붙이고 싶을 때는 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())