핵심 정리
파일 열기, 닫기
파일 읽기/쓰기를 하기 전에는 open 함수로 파일을 열어서 파일 객체를 얻어야 합니다. 그다음에 파일 읽기/쓰기 작업이 끝났다면 반드시 close로 파일 객체를 닫아줍니다.
파일객체 = open(파일이름, 파일모드) # 파일 열기 파일객체.close() # 파일 객체 닫기 with open(파일이름, 파일모드) as 파일객체: # 파일을 사용한 뒤 자동으로 파일 객체를 닫아줌 코드
파일 모드
파일을 열 때는 용도에 따라 다양한 파일 모드를 지정해야 합니다.
파일 모드 |
기능 |
설명 |
'r' |
읽기 전용 |
파일을 읽기 전용으로 열기. 단, 파일이 반드시 있어야 하며 파일이 없으면 에러 발생 |
'w' |
쓰기 전용 |
쓰기 전용으로 새 파일을 생성. 만약 파일이 있으면 내용을 덮어씀 |
'a' |
추가 |
파일을 열어 파일 끝에 값을 이어 씀. 만약 파일이 없으면 파일을 생성 |
'x' |
배타적 생성(쓰기) |
파일을 쓰기 모드로 생성. 파일이 이미 있으면 에러 발생 |
'r+' |
읽기/쓰기 |
파일을 읽기/쓰기용으로 열기. 단, 파일이 반드시 있어야 하며 파일이 없으면 에러 발생 |
'w+' |
읽기/쓰기 |
파일을 읽기/쓰기용으로 열기. 파일이 없으면 파일을 생성하고, 파일이 있으면 내용을 덮어씀 |
'a+' |
추가(읽기/쓰기) |
파일을 열어 파일 끝에 값을 이어 씀. 만약 파일이 없으면 파일을 생성. 읽기는 파일의 모든 구간에서 가능하지만, 쓰기는 파일의 끝에서만 가능함 |
'x+' |
배타적 생성(읽기/쓰기) |
파일을 읽기/쓰기 모드로 생성. 파일이 이미 있으면 에러 발생 |
t |
텍스트 모드 |
파일을 읽거나 쓸 때 개행 문자 \n과 \r\n을 서로 변환 t를 생략하면 텍스트 모드 |
b |
바이너리 모드 |
파일의 내용을 그대로 읽고, 값을 그대로 씀 |
파일 메서드
메서드 |
설명 |
read() |
파일에서 문자열을 읽음 |
write('문자열') |
파일에 문자열을 씀 |
readline() |
파일의 내용을 한 줄 읽음 |
readlines() |
파일의 내용을 한 줄씩 리스트 형태로 가져옴 |
writelines(문자열리스트) |
파일에 리스트의 문자열을 씀, 리스트의 각 문자열에는 \n을 붙여주어야 함 |
pickle.load(파일객체) |
파일에서 파이썬 객체를 읽음 |
pickle.dump(객체, 파일객체) |
파이썬 객체를 파일에 저장 |