핵심 정리

파일 열기, 닫기

파일 읽기/쓰기를 하기 전에는 open 함수로 파일을 열어서 파일 객체를 얻어야 합니다. 그다음에 파일 읽기/쓰기 작업이 끝났다면 반드시 close로 파일 객체를 닫아줍니다.

파일객체 = open(파일이름, 파일모드)    # 파일 열기
파일객체.close()                       # 파일 객체 닫기
 
with open(파일이름, 파일모드) as 파일객체:    # 파일을 사용한 뒤 자동으로 파일 객체를 닫아줌
    코드

파일 모드

파일을 열 때는 용도에 따라 다양한 파일 모드를 지정해야 합니다.

표 28-1 파일 모드

파일 모드

기능

설명

'r'

읽기 전용

파일을 읽기 전용으로 열기. 단, 파일이 반드시 있어야 하며 파일이 없으면 에러 발생

'w'

쓰기 전용

쓰기 전용으로 새 파일을 생성. 만약 파일이 있으면 내용을 덮어씀

'a'

추가

파일을 열어 파일 끝에 값을 이어 씀. 만약 파일이 없으면 파일을 생성

'x'

배타적 생성(쓰기)

파일을 쓰기 모드로 생성. 파일이 이미 있으면 에러 발생

'r+'

읽기/쓰기

파일을 읽기/쓰기용으로 열기. 단, 파일이 반드시 있어야 하며 파일이 없으면 에러 발생

'w+'

읽기/쓰기

파일을 읽기/쓰기용으로 열기. 파일이 없으면 파일을 생성하고, 파일이 있으면 내용을 덮어씀

'a+'

추가(읽기/쓰기)

파일을 열어 파일 끝에 값을 이어 씀. 만약 파일이 없으면 파일을 생성. 읽기는 파일의 모든 구간에서 가능하지만, 쓰기는 파일의 끝에서만 가능함

'x+'

배타적 생성(읽기/쓰기)

파일을 읽기/쓰기 모드로 생성. 파일이 이미 있으면 에러 발생

t

텍스트 모드

파일을 읽거나 쓸 때 개행 문자 \n\r\n을 서로 변환

t를 생략하면 텍스트 모드

b

바이너리 모드

파일의 내용을 그대로 읽고, 값을 그대로 씀

파일 메서드

표 28-2 파일 메서드

메서드

설명

read()

파일에서 문자열을 읽음

write('문자열')

파일에 문자열을 씀

readline()

파일의 내용을 한 줄 읽음

readlines()

파일의 내용을 한 줄씩 리스트 형태로 가져옴

writelines(문자열리스트)

파일에 리스트의 문자열을 씀, 리스트의 각 문자열에는 \n을 붙여주어야 함

pickle.load(파일객체)

파일에서 파이썬 객체를 읽음

pickle.dump(객체, 파일객체)

파이썬 객체를 파일에 저장