

| 메소드 | 설명 |
|---|---|
| read() | 파일에서 문자열을 읽음 |
| write('문자열') | 파일에 문자열을 씀 |
| readline() | 파일의 내용을 한 줄 읽음 |
| readines() | 파일의 내용을 한 줄씩 리스트 형태로 가져옴 |
| writelines(문자열리스트) | 파일에 리스트의 문자열을 씀, 리스트의 각 문자열에서는 \n을 붙여줘야 함 |
| pickle.load(파일객체) | 파일에서 파이썬 객체를 읽음 |
| pickle.dump(객체,파일객체) | 파이썬 객체를 파일에 저장 |
| 파일 모드 | 기능 | 설명 |
|---|---|---|
| 'r' | 읽기 전용 | 파일을 읽기 전용으로 열기, 단 파일이 있어야 하고 파일이 없으면 에러 발생 |
| 'w' | 쓰기 전용 | 쓰기 전용으로 새 파일을 생성, 만약 파일이 있으면 내용 덮어씀 |
| 'a' | 추가 | 파일을 열어 파일 끝에 값을 이어 씀, 만약 파일이 없으면 파일을 생성 |
| 'x' | 배타적 생성(쓰기) | 파일을 쓰기 모드로 생성, 파일이 이미 있으면 에러 발생 |
| 'r+' | 읽기/쓰기 | 파일을 읽기/쓰기용으로 열기, 파일이 있어야 하고 파일이 없으면 에러 발생 |
| 'w+' | 읽기/쓰기 | 파일을 읽기/쓰기용으로 열기, 파일이 없으면 파일을 생성하고 파일이 있으면 내용을 덮어씀 |
| 'a+' | 추가(읽기/쓰기) | 파일을 열어 파일 끝에 값을 이어 씀, 파일이 없으면 파일을 생성 |
| 'x+' | 배타적 생성(읽기/쓰기) | 파일을 읽기/쓰기 모드로 생성, 파일이 이미 있으면 에러 발생 |
| t | 텍스트 모드 | 파일을 읽거나 쓸 때 \n과 \r\n을 서로 변환 |
| b | 바이너리 모드 | 파일의 내용을 그대로 읽고 값을 그대로 씀 |
파일객체 = open(파일이름, 파일모드) # 파일 열기
파일객체.close() # 파일 객체 닫기
with open(파일이름, 파일모드) as 파일객체: # 파일을 사용한 뒤 자동으로 파일 객체를 닫아줌
코드
파일객체 = open(파일이름, 파일모드)
파일객체.write("문자열")
파일객체.close()
file = open('hello.txt', 'w') # hello.txt 파일을 쓰기 모드(w)로 열기. 파일 객체 반환
file.write('Hello, world!') # 파일에 문자열 저장
file.close() # 파일 객체 닫기

변수 = 파일객체.read()
file = open('hello.txt', 'r') # hello.txt 파일을 읽기 모드(r)로 열기. 파일 객체 반환
s = file.read() # 파일에서 문자열 읽기
prinst(s) # Hello, world!
file.close() # 파일 객체 닫기
with open(파일이름, 파일모드) as 파일객체:
코드
with open('hello.txt', 'w') as file: # hello.txt 파일을 쓰기 모드(w)로 열기
for i in range(3):
file.write('Hello, world! {0}\n'.format(i))
파일객체.writelines(문자열리스트)
lines = ['안녕하세요.\n', '파이썬.\n', '코딩 도장입니다./n']
with open('hello.txt', 'w') as file: # hello.txt 파일을 쓰기 모드(w)로 열기
file.writelines(lines)
변수 = 파일객체.readlines()
with open('hello.txt', 'r') as file: # hello.txt 파일을 읽기 모드(r)로 열기
lines = file.readlines()
print(lines)
변수 = 파일객체.readline()
line = None # 변수 line을 None으로 초기화
while line != '':
with open('hello.txt', 'r') as file # hello.txt 파일을 읽기 모드(r)로 열기
line = None # 변수 line을 None으로 초기화
while line != '':
line = file.readline()
print(line.strip('\n')) # 파일에서 읽어온 문자열에서 \n 삭제하여 출력
with open('hello.txt', 'r') as file: # hello.txt 파일을 읽기 모드(r)로 열기
for line in file: # for에 파일 객체를 지정하면 파일의 내용을 한 줄씩 읽어서 변수에 저장함
print(line.strip('\n')) # 파일에서 읽어온 문자열에서 \n을 삭제항 출력
📍 파일 객체는 이터레이터
변수 여러 개에 저장하는 언패킹도 가능, 할당할 변수의 개수와 파일에 저장된 문자열의 줄 수가 일치해야함

import pickle
name = 'james'
age = 17
address = '서울시 서초구 반포동'
scores = {'korea':90, 'english':95, 'mathematics':85 'science':82}
with open('james.p', 'wb') as file: # hello.txt 파일을 바이너리 쓰기 모드(wb)로 열기
pickle.dump(name, file)
pickle.dump(age, file)
pickle.dump(address, file)
pickle.dump(scores, file)
import pickle
with open('james.p', 'rb') as file: # hello.txt 파일을 바이너리 읽기 모드(rb)로 열기
name = pickle.load(file)
age = pickle.load(file)
address = pickle.load(file)
scores = pickle.load(file)
print(name)
print(age)
print(address)
print(scores)