파일 입출력
파일 입출력은 파일로부터 데이터를 읽거나 프로그램에서 만든 데이터를 파일 형태로 저장하기 위해 사용한다.
- w: 쓰기 모드 (write) - 덮어쓰기
- a: 추가 모드 (append) - 이어쓰기
- r: 읽기 모드 (read)
파일 쓰기
파일객체 = open('파일이름', '파일모드')
파일객체.write(데이터)
파일객체.close()
file = open('data.txt', 'w', encoding='utf8')
file.write('파일 쓰기')
file.close()
파일 읽기
파일객체 = open('파일이름', '파일모드')
파일객체.read()
파일객체.close()
file = open('data.txt', 'r')
data = file.read()
print(data)
file.close()
한 줄 씩 파일 읽기
while True:
data = file.readline()
print(data)
if data == "":
break
file.close()
with 구문 사용하기
with 구문을 사용하면 file.close()를 자동으로 호출한다.
with open('data.txt', 'r') as file:
data = file.read()
pickle 모듈
pickle은 파일에 파이썬 객체를 저장하기 위해 사용하는 모듈이다.
파이썬 객체를 pickle로 저장하기
import pickle
data = {
'1': '파',
'2': '일'
}
file = open('data.pickle', 'wb')
pickle.dump(data, file)
file.close()
여기서 파일모드 ‘wb’는 바이너리 모드로 컴퓨터가 바로 읽을 수 있는 바이너리 파일로 저장하는 옵션이다.
pickle 파일 파이썬으로 가져오기
이번에는 pickle 파일을 read binary 모드로 열어준다.
file = open('data.pickle', 'rb')
data = pickle.load(file)
print(data)
file.close()
csv 파일
csv 파일은 comma-separated values의 약자로 데이터가 콤마로 구분된 텍스트 파일 형식이다.
csv 파일 쓰기
import csv
data = [
["이름", "반", "번호"],
["A", 1, 20],
["B", 3, 8],
["C", 5, 32]
]
file = open("test.csv", "w")
# file = open("test.csv", "w", newline="", encoding='utf-8-sig')
writer = csv.writer(file)
for d in data:
writer.writerow(d)
file.close()
newline은 윈도우 환경에서 csv 파일을 만들 때 한줄 씩 띄워지는 것을 막는 옵션이다. encoding을 utf-8-sig로 하면 vscode 상에서도 파일을 깨지지 않은 상태로 볼 수 있다.
csv 파일 읽기
file = open("test.csv", "r")
reader = csv.reader(file)
for d in reader:
print(d)
file.close()