Python 파일 입출력 기본개념
2022-03-19
.
Python_studynote(20220319)
[학습자료]
패스트 캠퍼스 “초격차 패키지 : 한 번에 끝내는 파이썬 웹 개발” 강의를 공부하고 정리한 내용입니다.
** URL : https://fastcampus.co.kr/dev_online_pyweb
[학습내용]
- 파일 입출력의 기본과정
파일 열기 –> 파일 작업 –> 파일 닫기
- 파일 열기 모드는 아래와 같이 3가지가 있다.
(1) w : write (덮어쓰기)
(2) a : append (이어쓰기)
(3) r : read
- 파일 쓰기 파이썬 코드 예시
# 만약에 my_data.txt 라는 파일이 없으면 새로 만들게 된다.
file = open("my_data.txt","w",encoding="utf8")
file.write("1.오늘은 비가오는 날씨임")
file.close()
위에 코드를 실행하면 my_data.txt 가 생성이 되었을 것이다.
my_data.txt를 열어보면 내용은 아래와 같다.
1.오늘은 비가오는 날씨임
- 이번에는 append 모드로 내용을 추가해보자.
file = open("my_data.txt","a",encoding="utf8")
file.write("\n2.심심해서 카페나 왔다")
file.close()
my_data.txt를 열어보면 내용은 아래와 같다.
1.오늘은 비가오는 날씨임
2.심심해서 카페나 왔다
- 이번에는 read 모드로 파일 내용을 읽어보자.
(1) 파일 전체를 한꺼번에 읽는 방법
file = open("my_data.txt","r")
print(file.read())
file.close()
1.오늘은 비가오는 날씨임
2.심심해서 카페나 왔다
(2) 파일 내용을 한줄씩 읽는 방법
file = open("my_data.txt","r")
while True:
data = file.readline()
print(data,end="")
if data == "":
break
file.close()
1.오늘은 비가오는 날씨임
2.심심해서 카페나 왔다
- pickle 모드란 파일에 파이썬 객체를 저장하는 모드임
(1) 파일에 파이썬 객체 저장하기
import pickle
data = {
"목표 1" : "디카페인 커피 마시기",
"목표 2" : "계단 오르기"
}
# "wb" : write binary
# 바이너리 모드는 컴퓨터가 바로 읽을수 있는 데이터 형식이다.
file = open("data.pickle","wb")
pickle.dump(data,file)
file.close()
(2) 파일로부터 파이썬 객체 읽기
import pickle
# "rb" : read binary
file = open("data.pickle","rb")
data = pickle.load(file)
print(data)
file.close()
{'목표 1': '디카페인 커피 마시기', '목표 2': '계단 오르기'}
- with 구문
with 구문을 사용하는 이유는 file.close()
가 매번 반복적으로 사용하다 보니까 with 구문을 쓰게 되면 자동으로 마지막에 file.close()
를 호출하게 된다.
(1) with 구문 사용하지 않는 경우
file = open("my_data.txt","r",encoding="utf8")
print(file.read())
file.close()
1.오늘은 비가오는 날씨임
2.심심해서 카페나 왔다
(2) with 구문을 사용하는 경우
with open("my_data.txt","r",encoding="utf8") as file:
data = file.read()
print(data)
1.오늘은 비가오는 날씨임
2.심심해서 카페나 왔다
- csv : comma-seperated values 의 약자로 데이터가 콤마로 구분된 텍스트 파일 형식
(1) csv 파일 쓰기 예시
import csv
data = [
["이름","반","번호"],
["홍길동","1","2"],
["장영실","2","3"],
["고길동","3","10"]
]
file = open("student.csv","w")
writer = csv.writer(file)
for d in data:
writer.writerow(d)
file.close()
(2) csv 파일 읽기 예시
import csv
file = open("student.csv","r")
reader = csv.reader(file)
for d in reader:
print(d)
file.close()
['이름', '반', '번호']
['홍길동', '1', '2']
['장영실', '2', '3']
['고길동', '3', '10']